var box='89';
box++;
var box=10+{
toString:function(){
return 20;
return '20';
}
}
==表示值相等,===表示值和类型都相等
var box='3'>22;
var box='123'>'22'
var box='a'>'b'
var box=null==0;
var box=""==0;
**逻辑运算符**:
如果两边操作数有一个操作数不是布尔值的情况下,逻辑运算就不一定返回布尔值
与运算规则:
1.第一个操作数是对象,则返回第二个操作数
2.第二个操作符是对象,则第一个操作数返回true,才返回第二个,否则false
3.如果第一个false,则直接false
4.有一个为null,则null
5.有一个undefined,则undefined
或运算规则:
1.第一个为对象,则返回第一个
2.第一个false,返回第二个
3.都是对象,返回第一个
4.两个null,则null
5.两个undefined,则undefined
6.两个NaN,则NaN
可以利用或运算符来避免变量赋值null,或者undefined
非运算规则:
先转型再取反
Boolean({}) 效果与 !!{}一样
!{} 先将{}转成Boolean型,再取反
位运算:
位非: ~
位与: &
位或: |
位异或: ^
左移: <<
有符号右移 : >>
无符号右移 : >>>