代码之家  ›  专栏  ›  技术社区  ›  Andreas Köberle

在javascript中undefined和window.undefined有什么区别?

  •  6
  • Andreas Köberle  · 技术社区  · 15 年前

    如果 a 如果未定义,则此操作有效:

    if(window.a) {}
    

    当这引发错误时:

    if(a)
    

    有人能解释为什么吗?

    1 回复  |  直到 14 年前
        1
  •  10
  •   viam0Zah    15 年前

    window.a window 而且它的 未定义 . a 是一个变量 未申报的 .

    若要使用变量,应首先使用 var 语句。因为你没有申报 ,解释器引发错误。使用对象属性不需要显式声明。克罗克福德在 好的部分 :

    如果试图从 一个对象,如果该对象没有 有一个同名的成员,它 而是返回未定义的值。