JavaScript 深入理解作用域
var i = 10; function a (){ var b = 1; function c (){ var d = 2; } c(); alert(b); alert(d);
alert(i); } a(); //输出此段代码 b=1, d is not defined,i=10
1.作用域:程序中定义这个变量的有效区域。
变量d只在函数c中才会有结果,函数c就是变量d的作用域。
2.局部变量:有作用域限制的就叫做局部变量。
函数a下面的变量b,函数c下面的变量d。
3.全局变量:在最外围的一个对象,或者初始化变量时没有使用var声明。
函数i。window对象(window.onload等等)。
4.作用域链:保证代码的执行过程,查询顺序:由内向外。
函数d→函数b→函数i
5.JavaScript没有块级作用域。
如果需要拥有,将for语句块放入闭包中即可。
参考资料:https://www.imooc.com/video/9631/0
JavaScript高级程序设计