ES6

ES6之let

ES6新增了let命令,这个命令的用法类似于var

基本用法

//用var声明的变量
var a = 1;
//用let声明的变量
let b = 2;
  • 作用域

{
//用var声明的变量
var a = 1
//用let声明的变量
let b = 1
}
console.log(a)  // 这里输出 1
console.log(b)  // 报错 b is not defined

  • 这里说明一个{}代表一个代码块,在代码块之外调用两个变量,let报错,var返回正确的值,let只在它所在的代码块有效
  • 不存在变量提升

console.log(a) // undefined
console.log(b)  // 报错 b is not defined
//用var声明的变量
var a = 1
//用let声明的变量
let b = 1

  • 上面的代码的执行顺序是这样的

var a;
console.log(a) // undefined
console.log(b)  // 报错 b is not defined
//用var声明的变量
a = 1
//用let声明的变量
let b = 1

  • 暂时性死区

let a = 1
{
	a = 2  //报错
	let 2
}

  • 在ES6 中,明确规定,如果区块内存在let和const命令,这个区块对这些命令声明的变量,从一开始就形成了封闭作用域。凡是在声明变量前,对变量进行赋值的就会报错。
  • 不允许重复声明
//报错
{
	let a = 1
	let a = 2
}
//报错
{
	let a = 1
	var a = 2
}

特别鸣谢阮一峰的ECMAScript6 入门

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值