目录
运算符:
1.算术运算符:
typeof:
var a=123;
var result=typeof a;
console.log(typeof result);->string
加法:
1.对于非数字类型,会转换为数字,如null=0,true=1,false=0
2.NaN加任意值为NaN
3.若对两个字符串相加会拼串,任何值和字符串相加会转换为字符串,并做拼串 操作
result="你好"+"再见"->"你好再见"
任何值做-*/会自动转换为Number
一元运算符:(只需要一个操作符)
对于非number值可以用(a="18";a=+a;console.log(a)->18)
(var result=1++"2"+3=6)
自增幅:a++/++a(自动加1)
var d=20;var result=d++ + ++d + d;=21+22+22=65
自减幅:a--/--a
2.逻辑运算符:
!取反(对于非Boolean类型,会将其转换为布尔值,然后再取反)
a=false
a=!a=true
b="hello"
b=!!b;=true
&&与(对符号两侧值进行运算,判断两边是否为true,只有两个值都为true时结果才为true)
与运算如果两个值都为false,则返回靠前的值。都为true,则返回后面的值。
对于非Boolean:若第一个值为true,则必然返回第二个值
若第一个值为false,则返回第一个值
result=NaN&&0=NaN
result=5&&6=6
||或(两边只要有一个为true,就输出true)
非布尔类型:若第一个值为true则直接返回第一个值
若第一个值为false则直接返回第二个值
3.赋值运算符:(与Python一样)
4.关系运算符:
>,<,>=,<=
成立为true,非为false
对于非数值:
第一种:会将其转换为数字在比较
第二种:如果符号两侧都为字符串,会分别比较字符串中字符的Unicode编码
比较中文无意义,英文根据字母顺序比大小如:a<b
5.相等运算符:==
相等为true
对于Boolean会将其转为数字
true==1>>true,null==0>>false
NaN不和任何值相等,包括它本身
isNaN()检查值是否为NaN不相等:!=
abcd!=abcd(false)
全等:===
类型,值都要比较
"123"===123>>false
不全等:!==
类型,值都不一样
6.条件运算符:
条件运算符?语句1:语句2;
如果值为true,执行语句1,并返回结果
如果值为false,执行语句2,并返回结果
若条件非布尔值,会对其转换
运算符优先级:
从上往下,优先级递减,最后的一个是逗号