码迷,mamicode.com
首页 > Web开发 > 详细

关于JS函数变量作用域

时间:2015-01-02 21:07:02      阅读:231      评论:0      收藏:0      [点我收藏+]

标签:

这样一段代码:

var a = 123

function f() {
    console.log(a); 
    var a = 1; 
    console.log(a);
}

执行f(),会怎样输出呢?

 

你可能会想当然的第一次console.log输出的是123,也就是全局变量的值,而第二次显示是1。

但是,最先输出的是undefined。

 

函数的作用域始终优先于全局作用域,所以局部变量a会覆盖掉与他同名的全局变量,尽管第一次console.log的时候,a还没有被正式定义,但该变量已经存在本地空间了。即输出undefined。

关于JS函数变量作用域

标签:

原文地址:http://www.cnblogs.com/zjzhome/p/4198785.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!