[ES6] let,const,var

let命令(es6中新增)

1.let声明的变量,只在let命令所在的代码块中有效

2.只能声明后使用,不能变量提升

3.暂时性死区(temporal dead zone,简称 TDZ):只要块级作用域内声明了let变量,那它就锁定了这个区,不受外界影响。例如有个全局变量var temp="abc"  然后在块级作用域内let也声明了一个temp,导致后者绑定了这个作用域,所以在这个作用域内在let temp之前赋值会报错

4.不允许重复声明变量,不能在相同作用域内重复声明变量,例如一个作用域内声明 var a=“1”  let  a="2"  是错的,同样如果一个作用域内声明 let a="3"  let a="4"  也是错的

const命令

 1.const 声明常量,常量声明后不可变,这意味着,声明的时候就要初始化,不能留到后面赋值。

 2.const作用域和let一样,只在声明所在的区块内有效。

 3.const常量也是不可以提升的,同样存在暂时性死区,只能在声明位置之后使用。

 4.const声明的常量和let一样不可以重复声明。

var命令

1.存在变量提升的现象,在声明之前可以使用,值为undefined  不报错。例如:console.log(foo) 输出undefined  然后再声明并赋值  foo="abc"  这种现象是奇怪的,所以出现了let来纠正它

参考:let 和 const 命令

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值