文章目录
- 1. 作用域介绍
- 2. 变量的作用域
- *3. JS中没有块级作用域
- 4. 作用域链
- 5. 预解析
- 预解析案例
1. 作用域介绍
- 全局作用域
- 局部作用域
- 相同的变量名称在不同的作用域中是不会相互影响的!
2. 变量的作用域
- 全局变量:在全局下都可以使用;
- 局部变量:在函数内部的变量。
注意:
1.如果在函数内部没有直接声明直接赋值的变量也属于全局变量。(例如:num = 20)
2.函数的形参也可以看作是局部变量。
全局变量和局部变量的比较
*3. JS中没有块级作用域
4. 作用域链
作用域链:
内部函数访问外部函数的变量,采取的是链式查找的方式来决定取哪个值,这种结构我们称之为作用域链。(总的来说就是就近原则)
5. 预解析
预解析案例
-
结果:
结果:
undefined
undefined
20
结果:
结果:
注意:
var a = b = c = 9的含义是:var a = 9; b = 9;c = 9 ,也就是 b 和 c 没有声明变量,直接赋值了,当作全局变量。