摘要:
vartt='aa';functiontest(){alert(tt);vartt='dd';alert(tt);}test();“太简单了!”这是我当时看到这个题目是的第一想法,于是轻率答题竟成我的致命之伤。我的答案是——aa和dd,解析:第一次输出全局变量的结果,然后局部变量tt覆盖全局变量所引用的值,所以第二次输出结果是dd。任何人见我如此作答,都会认为我是在扫盲——想法及其幼稚(我也这么认为)!网易啊,怎么可能会满意于这种答案!正确的答案应该是:undefined和dd为什么第一次alert的结果是undefined呢?要解释得清楚明白需要用到Javas 阅读全文
摘要:
作用域 ScopeJavascript 中的函数属于词法作用域,也就是说函数在它被定义时的作用域中运行而不是在被执行时的作用域内运行。这是犀牛书上的说法。但"定义时"和"执行(被调用)时"这两个东西有些人搞不清楚。简单来说,一个函数A在"定义时"就是 function A(){} 这个语句执行的时候就是定义这个函数的时候,而A被调用的时候是 A() 这个语句执行的时候。这两个概念一定要分清楚。那词法作用域(以下称之为"作用域",除非特别指明)到底是什么呢?它是个抽象的概念,说白了它就是一个"范围" 阅读全文