学习内容:
一、操作符
1.算数运算符
+ - * / %(取余,取模)
++ --
a=a+1 a++
a=a-1 a--
a++ 先运算,后加减
++a 先加减,后运算
2.赋值运算符
+= -= *= /= %=
a=1
a=a+3---> a+=3
例: a=12
b=11
console.log(c=a*=b+5) //192
console.log(c=a/=b+3*(b+=4) ) //0.21428571428571427
console.log(c=a++ -4*b--) //-32
console.log(c=b-- + a++*(a-=3 + ++b)) //-1
3.关系运算符
> < == ===(恒等于) >= <= !=
a=2 //数值型
b="2" //字符型
console.log(a==b) //true
console.log(a===b) //false
==代表相同,先检查两个操作数的数据类型,
如果发现不同可进行类型转换,再进行值的比较
如果相同则调用===来进行比较
console.log(null==undefined) //true
===代表严格相同:如果类型不同,直接判断不同
如果类型不同就一定不相等
console.log(null===undefined) //false
4.逻辑运算符
&&:都为真才为真
短路运算符--js依次获取每个操作数,将它们转换为布尔型变量,如果是false,则中断后面的处理,返回当前操作值,如返回的是true,就继续处理下一个操作值,返回最后操作数的值
a=10
b=20
if(a>10 && b>20){
console.log("y")
}else{
console.log("n")
}
||:一个为真即为真
!:真变假,假变真
二、位运算符
& 与 都为1,结果为1
| 或 只要有1,结果为1
^ 异或 相同为0,不同为1
~ 非 0变1,1变0 先取反,减1,再取反,再变负号
~正数 ~n=-(n+1)
~负数 ~(-n)=|n|-1
>> 右移 有符号右移
>>> 右移 无符号右移
<< 左移 向左移动?位
**js数值类型用64位表示
32位:最高位为符号位(判断正负)
例:18 --10010
0000 0000 0000 0000 0000 0000 0001 0010
-18 --10010
1111 1111 1111 1111 1111 1111 1110 1101 取反
1111 1111 1111 1111 1111 1111 1110 1110 加1
~18 得-19
0000 0000 0000 0000 0000 0000 0001 0010
1111 1111 1111 1111 1111 1111 1110 1101 ~后
1111 1111 1111 1111 1111 1111 1110 1100 -1
0000 0000 0000 0000 0000 0000 0001 0011 取反 19 后加负号 -19
二、三目(三元)运算符 ?:
a=10 转换: a>0? alert("yes"):alert("no")
if(a>0){
alert("yes")
}else{
alert("no")
}