Javascript 未定义条件

标签 javascript

有人能给我解释一下 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/

相关文章:

javascript - postcss-import grunt 插件不工作

javascript - react native : HeadslessJS and Redux - How to access store from task

javascript - 为什么父元素上的 PreventDefault 会禁用以编程方式检查单击时的子复选框?

javascript - 防止按钮永久消失

javascript - Greensock - 无需 Throwprops 即可对齐网格

javascript - 将 header 授权设置为 Angular $http post

javascript - HTML 输入 - 删除前导字符

javascript - mongo find选择器导致返回不匹配的结果

javascript - React 组件上的 pageshow 事件监听器无法正常工作

javascript - 闰年解决方案检查