gpt4 book ai didi

javascript - 在javascript中测试未定义的方法的差异

转载 作者:行者123 更新时间:2023-11-30 07:45:15 25 4
gpt4 key购买 nike

我一直不明白这两种测试对象是否存在的方法的区别...

typeof obj == "undefined"

对比

obj == undefined

是首选吗?我几乎总是使用 jQuery,第二个是 jQuery 独有的功能吗?

最佳答案

问题

obj === undefined 

如果 'obj' 标识符名称在(词法)环境(或任何外部环境)中不存在,将抛出错误(这反过来会破坏你的程序)。

顺便说一句,通过声明变量 (var x;) 或将属性分配给 window 对象 (window.x = ...;).

另一方面

typeof obj === 'undefined'

不会抛出(错误),因此是首选方法。


请注意,您无法在 JavaScript 中检查对象是否存在。 JavaScript 代码不直接处理对象,而是通过引用。如果给定的引用不指向对象并不意味着该对象不存在(它可能被不同的引用引用)。您可以做的是检查引用(如 obj 在您的情况下)是否指向对象值(或者首先是否存在这样的标识符名称)。

如果

typeof obj === 'undefined'

评估为 true,这可能意味着:

  • 名称'obj'不存在于词法环境或任何外部环境中,
  • 名称 'obj' 存在于词法环境链中(位于其中的某处),并且绑定(bind)到 undefined 值。

关于javascript - 在javascript中测试未定义的方法的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8012653/

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