Posted by & filed under 每日一题.

【四脚猫】每日一题(2015年03月16日): 一个JS面试题,如何理解?

1
2
3
4
5
6
7
8
9
10
11
 var tt = 'aa';  

 function test(){

       alert(tt);
       var tt = 'dd';
       alert(tt);    

       }  

  test();

为什么第一个弹出undifine呢?

以下是云袭提供的参考答案:

js 作用域提升 术语是 hoisting
所以在 test 函数中实际执行的是
var tt;
alert(tt);
tt = ‘dd’
alert(tt)
所以第一个是 undefined
但是hoisting 不改变赋值,所以最终还是会输出变量的值

欢迎各位攻城狮,各位大牛给每日一题投稿,大家可以把自己碰到的有趣问题,工作中碰到的难题等…发送到 稿件邮箱:2313427189@qq.com