【问题标题】:Comparing to undefined not working every time [duplicate]与未定义的每次都不起作用相比[重复]
【发布时间】:2015-06-17 12:25:40
【问题描述】:

当我尝试检查函数参数是否已定义并使用时

 if (variablename === undefined) { do something };

有时它会像预期的那样工作,但有时(主要是在很早的时候,当一些脚本可能仍在加载时)我收到一个 javascript 错误,指出

变量名未定义

如果我使用

if (typeof variablename == 'undefined') 

它每次都有效。

=== undefined 是否有一些先决条件,或者可能是什么问题?

【问题讨论】:

  • console.log(variablename) 将导致 variablename is undefined。但是,var variablename = undefined; console.log(variablename); 只会打印 undefined
  • 如果一个名字没有被定义,它会抛出一个错误,如果这个值没有被定义,它会起作用。
  • 如果你不知道你的变量是否被声明,那你就做错了。

标签: javascript


【解决方案1】:

variablename === undefined 做的第一件事就是读取variablename 的值。

它可能是一个具有 undefined 的变量(可以正常工作)或者它可能是一个根本没有定义的变量......这将引发引用错误。

使用typeof 不会引发引用错误。

【讨论】:

    猜你喜欢
    • 2019-04-18
    • 2012-04-01
    • 2020-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-31
    • 2015-04-10
    • 2023-03-25
    相关资源
    最近更新 更多