前端进阶之路程序员寒哥管理的技术专题

【JavaScript】变量作用域

2015-12-08  本文已影响126人  苏星河

背景知识:

1.JavaScript不支持块级作用域
JavaScript的<b>函数作用域</b>:变量在声明它们的函数体以及这个函数体嵌套的任意函数体内都是有定义的

function hello() { 
  for (var i = 0; i < 10; i++) { 
      // doSomething...
  } 
  // 输出10,在支持块级作用域的语言中这里会报错
  console.log(i); 
}

2.声明提前:JavaScript函数里申明的所有变量都被提前至函数体顶部

var scope = “global”;
function test() {
  // 输出undefined,这里scope只是申明,还没有被赋初值
  console.log(scope);     
  // scope在这里被赋初值,但scoop的申明发生在函数体顶部
  var scope = "local";     
  // 输出local
  console.log(scope);     
}```

该函数等价于:

var scope = “global”;
function test() {
var scope;
console.log(scope);
scope = "local";
console.log(scope);
}```

上一篇 下一篇

猜你喜欢

热点阅读