ES6新特性 var let const 的区别

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
  1. const必须有初始值
    const声明一个只读的变量,一旦声明,常量的值就不能改变。如果声明的是复合型数据,可以修改其属性。

你可能感兴趣的:(es6,javascript)