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

js函数作用域

时间:2016-08-08 12:39:19      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:

var msg = ‘String A‘;
function test() {
  alert(msg);           //undefined
  var msg = ‘String A‘;
  alert(msg);
}
test();
 
以上代码等价于:
var msg = ‘String A‘;
function test() {
var msg;       //函数顶部重新申明变量
alert(msg);
msg = ‘String A‘;
alert(msg);
}
test();
在函数内部声明的变量在函数内部会覆盖掉全局同名变量。
在JS预解析时,定义变量的行为会在变量作用域内的顶部实现(hoisting),但是变量的赋值行为并不会提前,
所以第一个alert弹出的是underfined,第二个alert弹出的是”String A”。

js函数作用域

标签:

原文地址:http://www.cnblogs.com/hubl/p/5748563.html

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