最大的区别在于,全等号不执行类型转换。
全等号由三个等号表示(===),只有在无需类型转换运算数就相等的情况下,才返回 true
非全等号由感叹号加两个等号(!==)表示,只有在无需类型转换运算数不相等的情况下,才返回 true。
看一个例子:
再看一个非全等号例子:
全等号由三个等号表示(===),只有在无需类型转换运算数就相等的情况下,才返回 true
非全等号由感叹号加两个等号(!==)表示,只有在无需类型转换运算数不相等的情况下,才返回 true。
看一个例子:
var a = "66";
var b = 66;
alert(a == b); //输出 "true" 即使进行了转换,执行等号操作也返回true
alert(a === b); //输出 "false"
由于在比较时,执行了转换操作,把字符串“66”转换成了数字66后才比较的。只要执行类型转换,全等号(===)就会返回false,除非使用原生的没有任何转换操作的比较,如果相等,则全等号(===)会返回true
再看一个非全等号例子:
var a = "66";
var b = 66;
alert(a != b); //输出 "false"
alert(a !== b); //输出 "true"