LearningRecord
LearningRecord copied to clipboard
var、let 和 const 区别的是什么
一:var声明的变量会挂载在window上,而let和const声明的变量不会 二: var声明变量存在变量提升,let和const不存在变量提升 三:let和const声明形成块作用域 四: 同一作用域下let和const不能声明同名变量,而var可以 五:let有暂时性死区
var a = 100;
if(1){
a = 10;
//在当前块作用域中存在a使用let/const声明的情况下,给a赋值10时,只会在当前作用域找变量a,
// 而这时,还未到声明时候,所以控制台Error:a is not defined
let a = 1;
}
六: const 在声明时必须初始化赋值,一旦声明,其声明的值就不允许改变,更不允许重复声明
如 const 声明了一个复合类型的常量,其存储的是一个引用地址,不允许改变的是这个地址,而对象本身是可变的。