JS函数变量作用域与其他语言的作用域不同,理解JS的作用域在编译过程中显得尤为重要
1.函数作用域,函数作用域为包含本函数的整个生命周期。如以下代码。
window.onload = function(){
var result = 0;
add([2,2,2]);
function add(a){
for(var i in a){
result = result + a[i];
}
alert(result);
function cnt(n){alert(n);}
cnt(2);
}
cnt(3);
add([1,2,3,4]);
}
在以上函数中,定义了一个名为add的函数,此函数的作用域为window.onload()函数的内部的任何区域。函数调用可以在函数声明的前后位置。调用add([2,2,2])函数在add()函数声明前,add([1,2,3,4])函数在add()函数声明后。在add函数里面定义一个cnt函数,该函数的作用域为add函数的内部,故cnt(2)可以执行,cnt(3)不能执行。