有人能给我解释一下 if(obj.x == undefined)
和 if(typeof obj.x == 'undefined')
之间的区别吗?
在某些情况下,第一种工作正常,但在其他情况下我需要使用第二种方式。
问题
1 - 这两个条件有什么区别?
2 - 有最佳实践吗?
最佳答案
最佳做法是不仅要检查真实性,还要检查严格相等
例子
if (obj.x === undefined) {}
这曾经是一个问题,因为 undefined
(全局属性)过去是可写的,从 1.8.5 开始是不可写的,为您提供了 ES5 规范环境中的安全比较。
根据 MDN
关于Javascript 未定义条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7231873/