JavaScript操作符之相等操作符
JavaScript总是让人感到意外,就像==和===,!=和!==,总是让人捉摸不透。今天就说说这四个操作符。
1 ==和===
判断两个值是否相等,我们一般是a==b来判断,其他的编程语言也是一样,但是在JavaScript中,还有===这种操作。
1.1 ==
两边值类型不同的时候,要先进行类型转换,再比较。
-
console.log(1 == 1) //true
-
console.log("1" == 1) //true
-
console.log("a" == 1) //false
-
console.log(undefined == null) //true
遵循如下规则:
如果两个值具有相同类型,会进行===比较,返回===的比较值
如果两个值不具有相同类型,也有可能返回true
如果一个值是null另一个值是undefined,返回true
如果一个值是string另个是number,会把string转换成number再进行比较
如果一个值是true,会把它转成1再比较,false会转成0
如果一个值是Object,另一个是number或者string,会把Object利用 valueOf()或者toString()转换成原始类型再进行比较
1.2 ===
恒等,不做类型转换,类型不同的一定不等
-
console.log(1 === 1) //true
-
console.log("1" === 1) //false
-
console.log("a" === 1) //false
-
console.log(undefined === null) //false
遵循如下规则:
如果两个值类型不同,返回false
如果两个值都是number类型,并且数值相同,返回true
如果两个值都是stirng,并且两个值的String内容相同,返回true
如果两个值都是true或者都是false,返回true
如果两个值都是指向相同的Object,Arraya或者function,返回true
如果两个值都是null或者都是undefined,返回true
2 !=和!==
2.1 !=
和==类似,会存在隐式类型转换
-
console.log(1 != 1) //false
-
console.log("1" != 1) //false
-
console.log("a" != 1) //true
-
console.log(undefined != null) //false
2.2 !==
和===类似,不会存在类型转换,类型不同,一定!==,一定是true
-
console.log(1 !== 1) //false
-
console.log("1" !== 1) //true
-
console.log("a" !== 1) //true
-
console.log(undefined !== null) //true
文章来源: blog.csdn.net,作者:NMGWAP,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/NMGWAP/article/details/125066803
- 点赞
- 收藏
- 关注作者
评论(0)