作用域就是变量生效的范围,作用域分为 全局作用域与 局部作用域 (es6之前的定义),es6增加了块级作用域
全局作用域是在整个script标签中生效。局部作用域仅在某个函数内部生效,所以局部作用域在JS中也叫函数作用域
在函数外面定义变量写不写var都是全局变量,在函数里面写var的是局部变量
目录
1 局部变量与全局变量
我现在在函数中定义num,想在函数外面用
发现是不行的
我们现在不写var
这样就能在外面用了
不用的作用域下变量名称即使相同也是不冲突的
两个相同的命令在不同的作用域下产生了不同的结果
函数的形参可以看做是函数的局部变量
全局变量在浏览器关闭的时候释放,局部变量在执行完函数后自动释放,所以我们尽可能使用局部变量
2 作用域链
我们现在有三个变量,全局标量,外部函数局部变量,内部函数局部变量,我现在在内部函数中使用content
显示的是inside
我现在注释掉内部函数局部变量
最后我注释掉外层函数局部变量
查找变量时通过链式查找,先找离得近的再找离得远的,这条链叫做作用域链