变量作用域
- let 和 var 都是用来声明变量 但是let 有变量作用域的问题
在一个代买块- {} 中声明的let在外部无法访问
- 不存在变量名提升
- 在块级作用域使用let或者const 声明变量之前是不可以给变量赋值的,如果赋值就会报错。
俗称暂时性死区
- 如下隐藏性死区
- const 定义的变量如果是基本数据类型就无法修改,如果是引用数据类型,因为引用数据类型只是保存了指针,所有只要指针不发生改变,指针指的数据可以随意的改变
//在y还没有声明之前就让y赋值给X会报错
function bar(x = y, y = 2) {
return [x, y];
}
bar(); // 报错
- 不能在同以作用域重复声明变量
在for循环中使用var声明变量在循环结束后该变量不会消失会成为全局变量
变量声明 的六种方法
es5 var function
es6 let const impirt class
网友评论