比较运算符
是两个数据进行比较使用时,比较之后返回一个true js中有8个
< >= <= == != === !== ==判断两个值是否相等,不考虑数据类型 !=判断两个值是否不全等,不考虑数据类型 !==判断两个值是否全等,考虑数据类型 ===判断两个值是否全等,考虑数据类型,要数据类型一样且值一样
var a=1;
var b=2;
log(true===1)//false
log('2'==1)//false
log('1***'==0)//true
log(null==undefined)//true
log(null===undefined)//false
log(NaN==NaN)//false
log(NaN===aN)//false
运算符
逻辑运算符对数据进行逻辑运算 布尔运算符用于将数据转换为布尔值 取反: !!
逻辑或||
逻辑且&&当左右两侧都是布尔值的时候 左右两侧只要有一侧是false就返回false 只有两侧为true的时候才返回true log(false&&true)//true log(false&&false)//false 3>2&&s<4//true 3<2&&2<4//false 左右两侧不是直接的布尔值,规则(数字,字符串,表达式参与运算) 如果第一个运算子的布尔值是true则直接返回第二个运算子的值(注意:不是隐式转换后的布尔值) (如果第一个表达式的值为真,则返回表达式2) 如果第一个运算子的布尔值是false则直接返回第一个运算子的值(不是隐式转换后的布尔值)且不再对第二哥运算子求值(短路) 如果第一个表达式的值为假,则返回表达式1)
true&&false
false&&true
3-1&&'2'//'2'
3-1&&4-1//3
var x=1;
3-1&&x++//0
4-1&&x++//1
逻辑运算符||
或运算符在左右两侧都是布尔值时的规则 两边到时false时才返回false,只要一个伪true则返回true
左右两侧不是直接的布尔值 如果第一个运算子的布尔值为true,则返回第一个运算子的值,且不再对第二个运算子求值(短路) 如果第一个运算子的布尔值为false,则返回第二个运算子的值(运算后的值)
赋值运算符
变量加减一个值后在赋值给本身,就是在自身的基础上累加,加法和复制组合;
var a=1;
a+=10;//11
a-=10//11
a*=10//110
a/=10//11
a-=12//-1
a+=5//4
运算符号的优先级 () 一元运算符++ -- ! !! + - 算数运算符先乘除后加减 比较运算符> <= >= 相等运算== === != !== 逻辑运算符 && || 三元运算符 。。。?。。。:。。。 赋值运算符= 逗号, 表达式1?表达式2:表达式3 表达式为真的时候执行表达式2,表示式1为假的时候执行表达式3