== 用来判断两个值是否相等,类型不同的时候会先进行转换在做比较,null == 0 返回的是false null==undefined返回的是true,NAN不和任何值相等,也包括自身 当判断的一个值是否是NAN,可以用isNAN()函数判断。
=== 全等 不会做类型自动转换的 !== 全不等 依旧不会做类型转换
2.条件运算符或三元(目)运算符
返回值是true执行语句一
返回值是false执行语句二
var a = 10
var b = 20
a》b ?alert(‘a大’):alert(‘b大’)
3.运算的优先级
可以分割语句,声明多个变量,还可以赋值。
先乘除后加减
4.语句
在js中可以使用{}为语句分组
js操作属性
《script type=text/javascript》
widow。onload = function(){ 全部加载渲染完之后才执行下一步
document。getElementById(div1)。title= 我看到了;
《/script》
《body》
《div id = div1 class = div1 title = 这是一个div元素,你看到了吗?》
《/body》
在js中有类似font-size这类似的系统回默认为-号,可以用小驼峰 fontSize写法
、class属性
需要在class后面加Name
中括号
需要在变量加上中括号。[color]写法
style的写法['style']
document。write 只能重绘整个页面
innerhtml 可以重绘页面的一部分。
js函数
function aa()是定义一个函数 aa()函数名 {} 函数内容
调用<input type = button value = 弹框 onclick = aa()>
变量和函数的预解析
js是先预解析一边,然后执行。他会把函数整个提前 声明提前
匿名函数
没有命名的函数就是匿名函数
函数传参
function changeStyle(styl,val){
oDiv.style[styl] = val;
}
changeStyle(参数一,参数二)
函数return关键字
返回函数结果,会结束函数的运行,阻止默认的行为。
流程控制语句
条件判断语句: if。。。。。elif
js读写的是行间的样式 一开始行间是没有样式的,所以是先要执行none,或者在后面添加空字符串。
const groupBy = (array, f) =>{
let groups = {}
array.forEach(function (o) {
var group = JSON.stringify(f(o))
groups[group] = groups[group] || []
groups[group].push(o)
})
return Object.keys(groups).map(function (group) {
return groups[group]
})
}
const arrayGroupBy = (list, groupId) =>{
let sorted = groupBy(list, function (item) {
return [item[groupId]]
})
return sorted
}
arrayGroupBy(数组, '字段名称')