📜  ES6 特性和语法

📅  最后修改于: 2022-05-13 01:58:09.909000             🧑  作者: Mango

ES6 特性和语法

ES6 或正式名称:ECMAScript2015 是一种新的 JavaScript 实现,可以说是 JS 开发者大会和聚会中最热门的话题。以及为什么不应该这样:JavaScript 统治着网络,并在所有其他可能的领域获得了立足点,无论是机器人(nodebots)、桌面应用程序(使用 ion 框架)、聊天机器人等。
所以,现在让我们开始指出 ES6 的前 5 个特性:
ES6 中的默认参数:
实现差异:如果我们从我们这边提供 0 作为高度,在 ES5 中默认为 50,但在 ES6 中我们将高度变量解析为 0。
ES5方式:

var newvariable = function(height, name){
var height = height || 50
var name = name || "GeeksForGeeks"
}

ES6方式:

var newvariable = function(height = 50, name = "GeeksForGeeks"){
}

ES6 中的模板字面量:
实现更改:在 ES6 中,我们可以在反字符串中使用新语法 ${NAME},而不是将字符串分成几个部分,使用 '+' 连接变量以获得整个字符串。
ES5方式:

var first="Geeks";
var second="forGeeks";
var newstring='new string is made up of'+first+second;

ES6方式:

var first="Geeks";
var second="forGeeks";
var newstring='new string is made up of ${first} ${second}';
// change code but same value

ES6 中的多行字符串:
另一个美味的语法糖是多行字符串。在 ES5 中,我们必须使用 '+' 将位于不同行的字符串的不同部分连接起来,但在 ES6 中,我们可以只使用反引号 ' ' 来制作和使用多行字符串。
ES5方式:

var multiline_es5='Geeks\n\t'
+'For\n\t'
+'Geeks.\n\t'

ES6方式:

var multiline_es6='Geeks
For
Geeks'

承诺:
承诺一直是一个有争议的话题。有很多语法略有不同的 Promise 实现。 q、bluebird、deferred.js、vow、avow、jquery deferred 等等。其他人说我们不需要 Promise,只需使用异步、生成器、回调等。很高兴,现在 ES6 中有一个标准的 Promise 实现! Promise 是一种最终产生值的方法。在任何时间点,promise 都可以具有以下三种状态之一:

  • Promise is pending:你不知道 Promise 将返回什么值。
  • Promise 已解决:Promise 返回一个值。
  • Promise 被拒绝:Promise 不返回值并发送错误。

Promise 是一种新的实现,它们可以帮助我们避免回调地狱的情况(这是 js 应用程序的一个常见问题),而不是在满足条件时触发的回调函数,我们正在链接该函数。
您还可以通过以下方式了解差异:
回调函数的情况就像一个盒子中的盒子,我们首先打开最外面的盒子,然后是中间盒子,然后是最里面的盒子,而 Promise 就像爬梯子,梯子的每一步都是方法链接到承诺。