作用域:scope
全局作用域:全局变量
顶级作用域:一级作用域
常见的作用域场景:
全局
局部作用域es5:
es6 块级作用域
function(){
}
{
}
新增:
if(){
}
for(){
}
...
声明变量:
var :
1、定义变量支持重复定义
2、导致变量提升
3、不支持块级作用域
let:
1、变量无法重复定义
2、阻止变量提升
3、支持块级作用域
声明常量:存储数据
一旦赋值值不允许发生变更的;
const : 大驼峰
<script>
// 顶级作用域(父作用域)
var x = "" // 全局变量
function fn(){
// 局部作用域:二级作用域(子作用域)
var a = 123; // 局部变量
function aa(){
// 局部作用域:三级作用域(子作用域)
}
}
</script>
子作用域获取父级作用的域全部 代码段;
父作用域 无法读取子作用域的代码段;
作用域链:scope chain
用来描述作用域与作用域之间的关系