JavaScript的函数作用域是指在函数内声明的所有变量在函数体内始终可见.变量在声明之前已经可用,即”声明提前”.
1var a = "global";
2function f(){
3 console.log(a); //=>undefined,不是global
4 var a = "local";
5 console.log(a); //=>local
6}
//因为var a在函数第4行声明,所以当执行3行时,相当于var a;已经覆盖了全局的"global",只是这是a没有被赋值,只有执行到4行时a才被赋值,所以3行输出undefined而5行输出local.
该代码相当于这样
var a = "global";
function f(){
var a;
console.log(a); //=>undefined,不是global
a = "local";
console.log(a); //=>local
}
//所以好的编程习惯是将变量声明放在函数体顶部.
本文详细解释了JavaScript中函数作用域的概念,通过示例代码展示了变量声明提前的现象,并强调了良好的编程习惯对于避免潜在错误的重要性。
1012

被折叠的 条评论
为什么被折叠?



