klvoek

klvoek

js undefined 和 undeclared

在stackoverflow上看到如下一个问题

如果window上的a属性没有定义,如下代码不会引发异常

if(window.a){
    //some code
}
如果a变量没有定义,如下代码会引发异常

if(a){
    // some code 
}

js-undefined-undeclared

这是为什么呢?

后面高手回答:(Török Gábor

if(window.a) 是访问了window对象上一个未定义的属性a。if(a) 则是访问了一个未定义的变量。

使用变量时需要先使用var关键字定义这个变量。如果你不定义的话,编译器则会引发一个异常。

对象的属性不需要显示定义就可以使用而不会引发任何异常,但是会得到未定义的值 undefined .

标签: undefined, undeclared
Posted by klvoek @ 2012-2-12 16:47:10 阅读(144) 评论(2)
上一篇:(十三)jQuery的Ajax功能扩展代码

我也来参与讨论

  1. 回复 2012-2-12 21:59:05 by NinoFocus

    你在狂发文章啊
  2. 回复 2012-2-15 22:14:59 by klvoek

    @NinoFocus:被国峰入侵账号了
你还可以输入600/600个字符 发表评论
称呼: (必填) 登录 | 开通博客
邮箱: (选填) 你的邮箱地址不会被公开
网站: (选填)
验证码: (必填)
看不清换一张 看不清楚换一张