正式开博,ES6的let命令

最近工作上真爽,不用加班,晚上下班以后也就没什么事情了,这也是我能想起来写博客的原因之一。

做前端开发这一行的,大多都是半路出身,都知道IT工资高,所以很多人都是转行过来的,报个培训班,培训个半年就出来上岗了。在半年的时间内从一个门外汉到完全掌握这么技术,其实挺难的。所以,培训机构一般都把重点放在了上手,基础大概讲一下,直接开始上项目,让你在项目实战上学习。

我之前也是培训机构出来的,在这里就不说名字了,免去打广告的嫌疑。培训结束后,给任务,就可以做,但是对于基础的js语法,掌握的不够扎实。

之前在网上看过阮一峰老师的博客讲的ES6语法很好,为了让自己对ES6语法有更深入的了解,买了阮一峰老师的这本书,ES6标准入门,好好学习一下。

好了,废话不多说了,进入正题。

let命令
用法类似于var,用于声明变量,具有以下特点:
1、块级作用域;
2、不存在变量提升;
3、暂时性死区;
4、不允许重复声明。

a) 块级作用域:顾名思义,let所声明的代码只在其所在的代码块内有效。

{
	var a = "半斤";
	let b = "八两";
}
console.log(a)			//半斤
console.log(b)			//ReferenceError: b is not defined

b) var存在变量提升,变量在声明之前可以使用,值为undefined,而let不存在,必须在声明后使用,不然会报错。

console.log(a);			//undefined
var a = "半斤";

console.log(b);			//ReferenceError: b is not defined
let b = "八两";

c) let命令声明变量之前,该变量都是不可用的,在语法上称为暂时性死区(temporal dead zone,简称TDZ)。

var a = "半斤";
if(true){
	a = "八两";			//ReferenceError: a is not defined
	console.log(a);			//ReferenceError: a is not defined

	let a;
	console.log(a);			//undefined

	a = "八两";
	console.log(a);			//八两
}

d) 不允许在相同作用域内重复声明同一个变量。

(function () {
	let a = "半斤";
	var a = "八两";			//SyntaxError: Identifier 'a' has already been declared
})()

(function () {
	let a = "半斤";
	let a = "八两";			//SyntaxError: Identifier 'a' has already been declared
})()

(function (arg) {
	let arg = "半斤";			//SyntaxError: Identifier 'arg' has already been declared
})()

这就是ES6的let命名,与var还是有很大区别的,在看书之前,我只知道let的块级作用域,与for循环一起使用很有效,看了书现在才有了更深刻的认识。你之前是不是也没有认识到这么多呢???

如有疑问和错误,欢迎留言讨论和指正。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值