let和const

1.let部分

代码块内的暂时性死区是因为检测到了let命令吗?(感觉像是let提升在最顶部)

如果是用var声明的就不存在暂时性死区吗?(应该没有)

 

function bar(x = y, y = 2) {
  return [x, y];
}

bar(); // 报错

(不懂上面的编译过程)

if(1){
    tmp=1
}
console.log(tmp);//1
if(0){
     tmp=1
}
console.log(tmp);//Uncaught ReferenceError: tmp is not defined
if(1){
    var tmp=1
}
console.log(tmp);//1
if(0){
    var tmp=1
}
console.log(tmp);//undeifined

 

总而言之,不加var的变量虽然可以成为全局变量,但是不会进行变量提升

2.知识点

不存在变量提升,存在暂时性死区TDZ

不能重复声明

形成块级作用域

const命令的本质是变量指向的那个内存地址不得更改

ES6声明变量的六种方法:let const var function import class

 

转载于:https://www.cnblogs.com/donutkiki/p/11514775.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值