程序员社区

== 运算符的强制类型转换规则

1、如果一个数为数值另一个数为字符串,则字符串会转化为数字,然后再进行比较

2、其他类型的数据和布尔值类型的数据进行比较,其他类型的数据会先转化为布尔值类型然后再进行比较

3undefinednull比较的结果为 true。其他值和他们比较都返回假值。

4、如果一个操作值为NaN,则进行相等比较时,返回的结果是falseNaNNaN都不相等。

5、对象和非对象进行比较,对象先进行toPrimitive转化为基本数据类型,然后再进行比较。
console.log(new String("112") == "112")         //true
console.log(new String("112") === "112")    //false
这里左边的new String("112")是一个字符串对象,但是右边是一个基本类型的数
据,在进行"=="比较时,左边的会先经过toPrimitive进行转换,转化后变成字符
串然后再和右边比较。而"==="则不会进行默认转换。所以得到的结果是false6、如果左右两个操作符都是对象,则比较左右两边所指向对象的地址是否相同,如
果相同则返回true,如果不同则返回false

赞(0) 打赏
未经允许不得转载:IDEA激活码 » == 运算符的强制类型转换规则

一个分享Java & Python知识的社区