gpt4 book ai didi

javascript - undefined object 属性不等于 `undefined`

转载 作者:行者123 更新时间:2023-12-03 08:54:46 24 4
gpt4 key购买 nike

我发现 undefined object 属性不等于undefined

if (obj.unexistingProperty === undefined) {
// condition is false
}

if (typeof obj.unexistingProperty === 'undefined') {
// condition is true
}

虽然调试器控制台(Firebug 和 Chrome 开发工具)认为这两个条件都成立。

对此有何解释?

<小时/>

事实证明,代码发生在

内部
function (undefined) {
...
}

在本地范围内隐藏了未定义

最佳答案

事实上,undefined 并不是像 null 这样的关键字,在 ECMAScript 5 之前,undefined 可以被重新定义为其他内容。如果您错误地将其设置为其他内容,例如数字 5,然后测试一些实际上未定义的内容来对比它是否相等,那么很明显您会得到 。另一方面,typeof 忽略本地绑定(bind)。

如果您可以避免重新定义undefined,那就最好了。您可以做的其他事情是测试与 void 0 的相等性(void 接受一个表达式,丢弃其值,并返回真正的 undefined)或者,根据问题提示,使用 typeof 来检查 undefined

关于javascript - undefined object 属性不等于 `undefined`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32555273/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com