var,let和const
ES6新增了let
关键字用于声明变量,用法上和var
类似,这里列举一些两者的区别。
let与var区别
let
声明的变量只在它所在的代码块内有效:
因为上面的特性,所以let
很适合在for循环中做计数器:
var
声明的变量会被挂在到全局的window上,而let
并不会:
let是function scope,而let是block scope
let
不允许在同一个作用域内对同一个变量重复声明:
let
不存在变量提升问题,必须先声明再使用:
let
的作用域屏蔽造成临时性死区:
const定义常引用
常引用不允许修改
const
和let
一样都有作用域
引用的对象可以改变
常引用而非常变量