-
其实在js的世界里面常见作用域居然多达9种 那么咱们来看一下,如何手动去调试一下去验证
-
script
- node 下有无script
-
try catch 下其实也是具备这个错误的作用域的-- catch block
-
那么对于try catch finnaly 其实还是block块级作用域
- 那么对于 With Block 作用域 呢
其实本质上就是with Block 里面对象
- js 中一个非常重要的概念是闭包 closure 作用域
其实闭包会有个专门的 closure作用域保持内部引用的外部变量
- eval 作用域
会发现这个eval 作用域保存了所有变量,不管有没有被引用,因为它根本不会去分析字符串呀,也没法分析,万一你这段 JS 是动态从服务端获取再 eval 的呢?那就只能无差别去引用啦
- 模块作用域 需要在package.json 中去指定这个type 为 module
- 最后一个eval作用域它是有一个自己独立的作用域的
单独保持当前上下文内的变量