1、词法(静态)
- 取决于将变量写在哪个作用域
- Js 使用的是这种作用域
- 当前作用域内 没有找到变量定义 会继续向上寻找
var value = 3;
function foo() {
console.log(value); // 问这个地方的打印结果
}
function bar() {
var value = 6;
foo();
}
bar();
- 写一下分析思路
- 1、定义了一个全局变量 value
- 2、定义了两个函数 foo和bar
- 3、执行bar 后 foo会执行
- 4、查找自身作用域 未找到变量 向上层 作用域继续查找
- 5、打印出 3
2、动态作用域
- bash脚本
- 可以尝试将上面的代码 放在 bash环境中执行 打印 6
- bash环境 可以下载 git bash 启动