ES6新特性 var let const 的区别
程序员文章站
2022-07-16 17:46:24
...
ES6新特性
let const var的区别
1.var声明的变量会挂载在window上,let和const声明的变量不会挂载在window上。
var a = 10;
console.log(window.a) // 10
let b= 10;
console.log(window.b) // undefined
2.var声明的变量存在变量提升,let和const声明的变量不存在变量提升。
变量提升即变量可以在声明之前使用,值为undefined。
let命令改变了语法行为,它声明的变量一定要在声明之后使用,否则报错。
// var
console.log(a); // undefined
var a = 10;
// let
console.log(b); // 报错 Cannot access 'b' before initialization at
let b = 10;
3.let和const声明的变量形成块级作用域(暂时性死区,直到该变量的声明被处理)
4.let不允许在相同作用域内,重复声明同一个变量;
function(){
let a = 10;
var a = 1;
}
// 报错 Identifier 'a' has already been declared
function () {
let a = 10;
let a = 20;
}
// 报错 Identifier 'a' has already been declared
- const必须有初始值
const声明一个只读的变量,一旦声明,常量的值就不能改变。如果声明的是复合型数据,可以修改其属性。
上一篇: Object.defineProperty与proxy进行对比
下一篇: let and const