js 的 ==undefined 和 ===undefined 有什么区别?

作者站长头像
站长
· 阅读数 5
if (v == undefined) {
    console.log("==")
}

if (v === undefined) {
    console.log("===")
}

上面两个 if 判断有什么区别?

回复
1个回答
avatar
test
2024-07-10

== 为相等比较,会有隐式转换(将被比较的值转换为相同类型);

=== 为严格相等比较,两个被比较的值必须类型一致;

var num = 0;
var obj = new String("0");
var str = "0";
var b = false;

console.log(num === num); // true
console.log(obj === obj); // true
console.log(str === str); // true

console.log(num === obj); // false
console.log(num === str); // false
console.log(obj === str); // false
console.log(null === undefined); // false
console.log(obj === null); // false
console.log(obj === undefined); // false

相关文档

相等(==) - JavaScript | MDN严格相等(===) - JavaScript | MDNJavaScript 中的相等性判断 - JavaScript | MDN

回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容