一.作用域
1.js的作用域
定义:就是代码名字(变量)在某个范围内起作用和效果,减少命名冲突。在js中作用域(es6之前)分为两种:全局作用域和局部作用域
全局作用域:在整个script标签或者是一个单独的js文件下起作用局部作用域:又称函数作用域,仅在函数内部起作用和效果不同的作用域下,同名的变量之间不会产生影响
2.变量的作用域 (1)全局变量:在全局下都可以使用 注意:在函数内部,没有var声明,直接赋值的变量也是全局变量 (2)局部变量:在函数内部的变量就是局部变量 注意:函数的形参也可以看做是局部变量
3.全局变量和局部变量的区别 全局变量只有在浏览器关闭时才会被销毁,比较占内存 局部变量在程序运行结束时会被销毁,相对节省空间
4.js在es6时,新增了块级作用域
5.作用域链: 内部函数访问外部函数时,采用的是链式查找的方式来决定取哪个值,这种结构我们称为作用域链,简称就近原则 即站在console.log目标出发,一层一层往外寻找。