js---运算符
算数运算符:
当对非Number类型的值进行运算时,会将这些值转换为Number后再进行运算
任何值和NaN作运算,结果都是NaN
任何值和字符串作加法运算,都会先转换为字符串,然后再和字符串做拼接的操作
自增
a++/++a都会使原变量的值立即自增1
a++的值等于原变量的值,即自增前的值
++a的值等于自增以后的值
布尔值运算
非布尔值进行与或运算时,会先将其转换为布尔值,然后再进行运算,并且返回原值
与运算:如果两个值都为true,则返回后边的
如果两个值中有false,返回靠前的false
如果第一个值为true,则必然返回第二个值
如果第一个值为false,则直接返回第一个值
或运算:如果第一个值为true,则直接返回第一个值
如果第一个值为false,则直接返回第二个值
赋值运算符
a+=5,等价于a=a+5
比较运算符
任何值和NaN作任何比较都是false
如果符号两边的值都是字符串,不会将其转换为数字进行比较,而是比较其字符串的字符编码
比较字符编码时时一位一位进行比较,如果两位一样,则比较下一位
相等运算符
当使用==来比较两个值时,如果值的类型不同,则会自动进行类型转换,将其转换为相同的类型,进行比较
undefined衍生自null,所以这两个值做相等判断时会返回true
NaN不和任何值相等,包括他本身
可以通过isNaN()来判断一个值是否是NaN
===用来判断两个值是否全等,它和相等类似,不同的是它不会做自动的类型转换,如果两个值得类型不同,直接返回false
!==不全等,与全等类似
条件运算符(三元运算符)
语法:
条件表达式 ? 语句1 : 语句2
运算符优先级

浙公网安备 33010602011771号