ES6语法学习-let,var和const

var,let和const

ES6新增了let关键字用于声明变量,用法上和var类似,这里列举一些两者的区别。

let与var区别

let声明的变量只在它所在的代码块内有效

let变量只在所在的代码块中有效

因为上面的特性,所以let很适合在for循环中做计数器:

在for循环中使用let,循环体外变量就无效

var声明的变量会被挂在到全局的window上,而let并不会

let-in-loop

let是function scope,而let是block scope

let不允许在同一个作用域内对同一个变量重复声明

let-already

let不存在变量提升问题,必须先声明再使用

var

let的作用域屏蔽造成临时性死区

临时性死区

const定义常引用

常引用不允许修改

常量不可变

constlet一样都有作用域

const作用域

引用的对象可以改变

常引用而非常变量

const对象可变