【问题标题】:Why doesn't calling an undefined property tigger error?为什么不调用未定义的属性触发错误?
【发布时间】:2015-05-19 21:50:29
【问题描述】:

不知道

var myVar = unDef;

触发一个ReferenceError,为什么

var myObj = {};
var myVar = myObj.unDef;

工作正常吗?它返回 undefined 而没有运行时错误。两者都没有定义。

【问题讨论】:

  • 因为... = unDef 是一个未定义的变量,而未定义的属性并没有那么严重。
  • 这就是语言的工作原理,例如 PHP 如何允许您使用未定义的变量以及 Python 如何不允许您使用未分配的属性。

标签: javascript object properties


【解决方案1】:

这允许您使用

if (myVar.unDef)

而不是更冗长(也更昂贵,因为它调用一个函数):

if (myVar.hasOwnProperty('unDef'))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-20
    • 2014-10-23
    • 2013-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-14
    相关资源
    最近更新 更多