浅谈ES6
2016-04-22 12:01
288 查看
15年接触了CoffeeScript,代码之简单,让我惊讶。之前也写过javascript,但发现太冗余了,基本没有动力继续写下去。16年开始接触React以及React Native,也就正式了解了ES6语法,发现它和CoffeeScript很相近,并有了很大的改进。这几天参考了http://es6-features.org/,对ES6重新简单的学习,有以下几点思考。
ES6支持新的特性有:
1. 常量
常量,这个不多说,大多数语言都有,如c,c++,java,go等。python之前也没有,PEP8中有部分支持。 加入常量之后,虽然不如之前灵活,但会常量会做类型检查,同时加快编译速度。
2. => 函数定义
=>函数定义, 类似于 CoffeeScript中函数绑定,可以将javascript中this关键词动态地绑定设定为当前函数挂在所在的对象上。=>绑定,使得原先函数绑定变得容易。同时由于ES6中语法中需要用{}()来进行代码分割,使得代码相比于CoffeeScript更加清晰,容易阅读。
3. 模板
模板,自动支持了模板机制,比之前ES5,不需要额外引入其他模板引擎。
4. 扩展参数处理
5. 解构赋值
扩展参数处理,是非常好的,用...来扩展参数,类似于go语法。相对容易理解。另外在函数解构赋值中,也和Go很相近,支持多变量赋值,以及默认参数。
6. 模块
是一种抽象。类似于Package或者namespace的概念。
7. 类(最大的改进)
终于开始支持面向对象编程,支持了继承,以及静态函数等相关操作;
8. Iterators 和 Generators
迭代和生成器,我理解如C++中的Iterator,以及Python中的迭代和生成器。但感觉语法还是有些复杂,希望之后还能够改进。
9. Map/Set/WeakMap/WeakSet
对数据函数的进一步支持
10.内嵌函数
提供更多的内部函数封装,主要用模块以及面向对象来实现。
11. Promise
对异步操作进行更好的封装,在React-Native中已经直接可以使用React.
12. 反射机制
反射机制类似于Go中Reflect,或者typeof 等机制
13. 国际化和本地化支持
这个很不错,在其它语言中也有支持。
以及其它
ES6语法使得JS越来越容易学习,也具有通用性,我感觉比较深的,以上是和其它几种语法的分析和对比。当然小弟功力尚浅,有哪些不足支持,请大家多多批评指正。
ES6支持新的特性有:
1. 常量
常量,这个不多说,大多数语言都有,如c,c++,java,go等。python之前也没有,PEP8中有部分支持。 加入常量之后,虽然不如之前灵活,但会常量会做类型检查,同时加快编译速度。
2. => 函数定义
=>函数定义, 类似于 CoffeeScript中函数绑定,可以将javascript中this关键词动态地绑定设定为当前函数挂在所在的对象上。=>绑定,使得原先函数绑定变得容易。同时由于ES6中语法中需要用{}()来进行代码分割,使得代码相比于CoffeeScript更加清晰,容易阅读。
3. 模板
模板,自动支持了模板机制,比之前ES5,不需要额外引入其他模板引擎。
4. 扩展参数处理
5. 解构赋值
扩展参数处理,是非常好的,用...来扩展参数,类似于go语法。相对容易理解。另外在函数解构赋值中,也和Go很相近,支持多变量赋值,以及默认参数。
6. 模块
是一种抽象。类似于Package或者namespace的概念。
7. 类(最大的改进)
终于开始支持面向对象编程,支持了继承,以及静态函数等相关操作;
8. Iterators 和 Generators
迭代和生成器,我理解如C++中的Iterator,以及Python中的迭代和生成器。但感觉语法还是有些复杂,希望之后还能够改进。
9. Map/Set/WeakMap/WeakSet
对数据函数的进一步支持
10.内嵌函数
提供更多的内部函数封装,主要用模块以及面向对象来实现。
11. Promise
对异步操作进行更好的封装,在React-Native中已经直接可以使用React.
12. 反射机制
反射机制类似于Go中Reflect,或者typeof 等机制
13. 国际化和本地化支持
这个很不错,在其它语言中也有支持。
以及其它
ES6语法使得JS越来越容易学习,也具有通用性,我感觉比较深的,以上是和其它几种语法的分析和对比。当然小弟功力尚浅,有哪些不足支持,请大家多多批评指正。
相关文章推荐
- hibernate组件映射
- ubuntu 下如何在eclipse上安装部署发布tomcat
- Android中编辑文本时使用TextWatcher和InputFilter.Length
- PHP使用反射机制实现查找类和方法的所在位置
- Android传感器的应用
- 正则表达式集锦(一)
- 28款Python GUI开发框架开源软件
- tomcat-redis-session问题
- hdu2444
- Socket 与 WebSocket
- L1,L2正则化理解-奥卡姆剃刀(Occam's razor)原理
- 如何优化 Android Studio 启动、编译和运行速度?
- vue数据绑定
- ZookeeperAPI学习
- dedecms如何快速删除跳转的文章(记得清空内容回收站)
- Android APK反编译就这么简单 详解(附图)
- std::copy()和std::back_inserter()用法
- 关于设计CTA按钮的迷之思考
- 常用正则表达式
- Linux安装卸载MySQL以及修改MySQL初始密码