js 运算符

运算符就是完成操作的一系列符号,它有七类:   
赋值运算符(=,+=,-=,*=,/=,%=,<<=,>>=,|=,&=)、算术运算符(+,-,*,/,++,--,%)、比较运算符(>,<,<=,>=,==,===,!=,!==)、逻辑运算符(||,&&,!)、条件运算(?:)、位移运算符(|,&,<<,>>,~,^)和字符串运算符(+)。   
!==是不全等于符号。   
可能很多人不知道"==="是什么。在这里,我为大家解释一下,在JavaScript中,“==="是全同运算符,只有当值相等,数据类型也相等时才成立。   
等同运算符的比较规则:   当两个运算数的类型不同时:将他们转换成相同的类型。   1)一个数字与一个字符串,字符串转换成数字之后,进行比较。   
2)true转换为1、false转换为0,进行比较。   
3)一个对象、数组、函数与 一个数字或字符串,对象、数组、函数转换为原始类型的值,然后进行比较。(先使用valueOf,如果不行就使用toString)   
4)其他类型的组合不相等。   
想两个运算数类型相同,或转换成相同类型后:   
1)2个字符串:同一位置上的字符相等,2个字符串就相同。   
2)2个数字:2个数字相同,就相同。如果一个是NaN,或两个都是NaN,则不相同。
3)2个都是true,或者2个都是false,则相同。  
 4)2个引用的是同一个对象、函数、数组,则他们相等,如果引用的不是同一个对象、函数、数组,则不相同,即使这2个对象、函数、数组可以转换成完全相等的原始值。   
5)2个null,或者2个都是未定义的,那么他们相等。   
而“===”是全同运算符,全同运算符遵循等同运算符的比较规则,但是它不对运算数进行类型转换,当两个运算数的类型不同时,返回false;只有当两个运算数的类型相同的时候,才遵循等同运算符的比较规则进行比较。   
例如:null==undefined 会返回真, 但是null===undefined 就会返回假!

你可能感兴趣的:(js,javascript)