作用域
1、js中没有块级作用域
2、如果有块级作用域,那么下面代码将会是undefined undefined
<script> for (var i = 0; i < 10; i++) { var num = i; } console.log(i); console.log(num); </script>
词法作用域
1、就是在代码写好的那一刻,变量的作用域就已经确定了,这种作用域,就是所谓的词法作用域
2、和词法作用域相对的叫动态作用域 ,js中是词法作用域不是动态作用域
3、在JS中唯一能产生作用域的是函数
词法作用域规则
1、函数允许访问函数外的数据
2、整个代码结构中只有函数可以限定作用域
3、作用域规则首先使用提升规则分析
4、如果当前作用域中有了该变量, 就不考虑外面的同名变量