ES6 - 开篇

一些关于es6简单的介绍与了解。初始认知有限,循序完善。es6

 

ES6:

又叫ES2015,是2015年推出的JavaScript新版本。面试

相应的,后边推出的ES七、八、九、10等都依次是上一版本发出后一年的新迭代版本。不过不少还是提案,并不被浏览器支持。浏览器

如今广泛使用es六、7,但仍然须要工具进行编译转换成es5的语法。这个工具就是babel(后表)。babel

 

ES6及后边版本的语言进行迭代的目的:

让JavaScript愈来愈好用、愈来愈强大,逐渐完善到成为企业级的开发语言。闭包

 

咱们为何要学习ES6:【优势】

语言迭代天然是弥补以前语言的不足,或者让原有语言更加规范、更加简便易用。函数

因此ES6在原有基础上增长了一些语法糖,引入了一些新特性。使得es更加规范、易操做,简化了项目的复杂程度,下降出错率,提升开发效率。工具

以let出现来讲,就是由于js没有块级做用域的概念,新人使用常常遇到的一个出错点就像下边这样的代码:学习

【也是面试高频的埋雷题】es5

请问点击每个li,打印的是什么?spa

若是想点击li输出对应的索引要怎么改?

这个问题对于学到这里的咱们应该很easy了,由于i是全局的,因此打印i的时候会取window上的i,此时for循环完i就是li.length的值。即不管点击哪一个li,获得的结果都是同一个数。

平时咱们解决时,可能会建立一个当即执行函数包裹住click事件的绑定,存储不一样的i值到不一样的函数做用域中,最后利用闭包的原理输出不一样的i值以实现打印索引的需求。

 

这也就暴露了var声明变量的弱点。因此就有了let的出现。

使用let咱们轻松修改,就能达到上边的需求:

相对上边的代码只改了一个单词,不能够说es6很差用。

 

 

不足:

由于低版本浏览器的不支持,就须要Babel工具进行转换。

感觉一下:一样是上边那段使用let的代码(图三),

 

通过babel编译成es5语言后,实现了咱们须要的功能。可是咱们开发的时候只须要写let就能够了,仍是灰常方便的。

能够看出编译后的原理仍是利用了函数做用域和闭包[/偷笑]

 

babel的基础配置见下篇。

相关文章
相关标签/搜索