理解函数以及变量作用域问题

来源:互联网 发布:java开源代码论坛 编辑:程序博客网 时间:2024/06/12 19:32
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)不能执行。