【前端】ES6:let声明变量与const声明常量

1 let不允许重复声明变量

// 使用 var 的时候重复声明变量是没问题的,只不过就是后面会把前面覆盖掉
var num = 100
var num = 200

// 使用 let 重复声明变量的时候就会报错了
let num = 100
let num = 200 // 这里就会报错了

// 使用 const 重复声明变量的时候就会报错
const num = 100
const num = 200 // 这里就会报错了

2 let和const声明的变量不会在预解析的时候解析(也就是没有变量提升)

// 因为预解析(变量提升)的原因,在前面是有这个变量的,只不过没有赋值
console.log(num) // undefined
var num = 100

// 因为 let 不会进行预解析(变量提升),所以直接报错了
console.log(num) 
let num = 100

// 因为 const 不会进行预解析(变量提升),所以直接报错了
console.log(num) 
const num = 100

3 let和const声明的变量会被所有代码块限制作用范围

// var 声明的变量只有函数能限制其作用域,其他的不能限制
if (true) {
	var num = 100
}
console.log(num) // 100

// let 声明的变量,除了函数可以限制,所有的代码块都可以限制其作用域(if/while/for/...)
if (true) {
	let num = 100
	console.log(num) // 100
}
console.log(num) // 报错

// const 声明的变量,除了函数可以限制,所有的代码块都可以限制其作用域(if/while/for/...)
if (true) {
	const num = 100
	console.log(num) // 100
}
console.log(num) // 报错

4 let和const的区别

4.1 let声明的变量的值可以改变,const声明的变量的值不可以改变

let num = 100
num = 200
console.log(num) // 200

const num = 100
num = 200 // 这里就会报错了,因为 const 声明的变量值不可以改变(我们也叫做常量)

4.2 let声明的时候可以不赋值,const声明的时候必须赋值

let num
num = 100
console.log(num) // 100

const num // 这里就会报错了,因为 const 声明的时候必须赋值
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值