《Javascript中_==_和_===_的区别》
JS关系运算符中的 == 和 ===:
相同点:都是用来判断是否相等
不同点: == 判断值是否相等,存在隐式转换
=== 表示全等,判断值和数据类型是否完全相等
具体如下:
==:
1):存在隐式转换规则:把字符串转化为数字
console.log('5' == 5); //true
2):当两边都是字符时,会触发字符比较规则,逐位比较
console.log("abcd" == "acf"); //false
3):undefined被转成 NaN: NaN和任何数值都不相等
console.log(NaN==NaN); //false
console.log(undefined==0); //false
console.log(undefined==1); //false
console.log(undefined==true); //false
console.log(undefined==false); //false
4):null被转成NaN: NaN和任何数值都不相等
console.log(null==0); //false
console.log(null==1); //false
console.log(null==true); //false
console.log(null==false); //false
5):特殊的表达式判断
console.log(null==undefined); //true
===:
1):不存在隐式转换规则
console.log('5' === 5); //false
2):特殊的表达式判断
console.log(null===undefined); //false