【ES6】let/const 和 var

let/const 和 var

  • let/const有块级作用域
  • var有变量提升
  • let/const声明前不能使用(暂时性死区)
  • let/const不能被重复声明
  • const声明的变量不能被改变(复杂数据类型可以改变其属性,不能改变引用地址)

注:

  1. for循环中函数内部变量i和循环变量i在不同的作用域,属于父子作用域关系
  2. typeof 在let出现之后变得不安全了,当检测处于暂时性死区的变量时,会报一个ReferenceError的错误。
  3. 不易发现的死区
function bar(x = y, y = 2) {
  return [x, y];
}
bar(); // 报错

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


// 不报错
var x = x;
// 报错
let x = x;
// ReferenceError: x is not defined

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值