首页 > Web开发 > 详细

js函数作用域

时间:2016-08-08 12:37:39      阅读:246      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!