es5和es6是指ecmascript标准的不同版本,即脚本语言规范,是包括JavaScript在内的几种语言的基础。从ES5到ES6的演变(也称为Ecmascript 2015)带来了许多变化和改进。这是两者之间的比较:
1. Let and Const(可变声明)
-
es5 :声明变量的主要方法是使用
var
。 -
es6 :引入了块scoped变量声明的
let
,而const
则用于块scop的常数变量声明。
2. 模板文字
-
es5 :使用
+
串联字符串。
var name = "John";
var greeting = "Hello, " + name + "!";
- es6 :引入模板文字。
let name = "John";
let greeting = `Hello, ${name}!`;
3. 箭头功能
- ES5 :
function(x) {
return x * x;
}
- es6 :引入了箭头功能,该功能为编写功能提供了较短的语法。
x => x * x;
4. 课程
- ES5 :原型遗传用于模拟类似类的行为。
-
ES6 :引入了针对对象的编程的
class
关键字。
5. 增强的对象文字
- es5 :用键值对定义对象。
- es6 :提供用于定义对象的较短语法。
let name = "John";
let obj = {name}; // Equivalent to {name: name}
6. 破坏
- ES5 :没有直接的方式。
- es6 :允许以更简洁的方式从对象或数组中提取多个属性。
let person = { firstName: "John", lastName: "Doe" };
let { firstName, lastName } = person;
7. 默认 +休息 + spread
- es5 :手动完成默认,休息或传播。
-
es6 :引入函数参数的默认值,用于收集参数的
...rest
参数以及用于传播数组或对象的...spread
运算符。
8. 模块
- ES5 :没有天然模块系统。开发人员依靠第三方解决方案(例如COOMJS或AMD。 )
-
es6 :使用
import
和export
引入本机模块系统。
9. 承诺
- ES5 :回调用于异步操作。
- es6 :以更结构化的方式介绍了处理异步操作的承诺。
10. 循环
-
es5 :使用
for
或forEach
进行循环。 -
es6 :引入了
for-of
循环,以迭代迭代物体。
11. 集,地图,弱点,弱图
- ES5 :没有直接等效。
- es6 :引入了这些收集类型用于处理数据。
12. 符号类型
- es5 :没有这样的类型。
-
es6 :引入了用于创建唯一标识符的
Symbol
类型。
13. 数组和对象方法
- ES5 :有限的方法集。
-
es6 :引入了诸如
Array.from
,Array.of
,Object.assign
等新方法。
14. 参数处理
-
es5 :使用
arguments
对象访问参数。 - ES6 :直接支持对使用休息,默认和差异来处理参数。
这是一个高级比较。从ES5到ES6的过渡带来了许多其他详细的更改和改进,从而大大增强了JavaScript语言。随着时间的流逝,随后的版本(例如ES7/ES2016及以后)添加了更多功能。
感谢您的阅读。我鼓励您在Twitter上关注我,我定期分享有关JavaScript和反应的内容,并为开源项目做出贡献。我目前正在寻找远程工作或实习。
Twitter:https://twitter.com/Diwakar_766