《深入理解ES6》阅读随笔
前言碎语:自 ES6 在 2015 年发布以来,笔者零星陆续用过 ES6 的一些新特性,但掌握不够系统,时隔 5 年才开始重新学习,确实惭愧。本轮阅读先整体了解,后面再抽时间并结合自身工作情况,以达到逐步深入理解的目标。
背景:作为动态语言的 Javascript ,具有使用灵活的优势,但也正因为如此,存在一些约束不明确的情况。Javascript 之所以能流行并存活这么久, ECMA 规范功不可没。但之前的版本迭代非常缓慢,功能演进很小。在第四版时虽然新增了很多内容,但是由于各种原因,大家分歧很多,并没有正式发布出来。所以现在常用且存活多年的 ES5(2009-2015)其实是 ES3 的一个升级版。本次 ES6 的发布,显著解决了多年来积存的问题,并且还制定了以后每年规律发版的方针,确实振奋人心。
var:ES5 中声明变量 / 常量的关键字是 var ,声明以后,变量会自动提升到该作用域下的顶层位置,因此不管变量是否使用,都会创建。
let:在 ES6 中新增了使用 let 来声明变量的方式,该方式不会提升变量。在一个作用域内,在创建 let 变量之前,该变量会存在临时死区 TDZ(Temporal Dead Zone)中,直到声明以后才会真正创建。另外在 for 循环中,也不会存在递增数列只输出最后一条的问题。
const:const 是 ES6 中用来声明常量的关键字,除此之外,用法与 let 保持一致。
思考:分别使用新的 let / const 来替换 var,可以使代码逻辑更清晰规范,而且也避免掉了之前因作用域提升带来的困扰。
网友评论