1
1
# 壹.1.1 新版 ECMAScript 特性分析
2
2
3
3
{% hint style="info" %}
4
- 本书约定: 示例代码中注释里双右尖括号 ` >> ` 代表“打印/输出”的意思。
4
+ 本书约定: 示例代码中注释里双右尖括号 ` >> ` 代表“打印/输出”的意思。
5
5
{% endhint %}
6
6
7
7
## 壹.1.1.0 本篇导读
@@ -20,7 +20,7 @@ JavaScript起源于1995年Netscape为自家游览器创造的脚本语言LiveScr
20
20
21
21
在2009年12月诞生了ES 5。你可能会问ES 4 呢,抱歉,版本4因为太激进,EI委员会成员之间的意见不一,最后胎死腹中,改由更加平滑温和的版本5继承版本4的一些新特性和功能。
22
22
23
- EI于2015年6月发布了ES 6,也就是我们今天广泛使用的版本。这之后每年6月发布一个极小更新的ES版本,比如2016年6月发布的 ES 2016 叫做ES 7,而这个版本只增加了两个新特性。截止本书编写时,ES 11的提案已经定稿了。
23
+ EI于2015年6月发布了ES 6,也就是我们今天广泛使用的版本。这之后每年6月发布一个极小更新的ES版本,比如2016年6月发布的 ES 2016 叫做ES 7,而这个版本只增加了两个新特性。截止本书编写时,ES 11的提案已经定稿了。
24
24
25
25
综上可见,** JavaScript是ECMAScript规范的一种实现** 。为方便读者理解交流,而且由于ECAMScript 6 之后变化并不是特别大,如果没有特别说明,本书后面讲述的JavaScript对应的规范默认为 ES 6。
26
26
@@ -129,7 +129,7 @@ Object.entries('es8'); // [['0', 'e'], ['1', 's'], ['2', '8']]
129
129
130
130
在 ES 8 中String新增了两个实例函数` String.prototype.padStart ` 和` String.prototype.padEnd ` ,允许将空字符串或其他字符串添加到原始字符串的开头或结尾。
131
131
132
- * ` String.padStart(targetLength,[padString]) `
132
+ * ` String.padStart(targetLength,[padString]) `
133
133
_ targetLength:_ 当前字符串需要填充到的目标长度。如果这个数值小于当前字符串的长度,则返回当前字符串本身。
134
134
135
135
_ padString:_ \( 可选\) 填充字符串。如果字符串太长,使填充后的字符串长度超过了目标长度,则只保留最左侧的部分,其他部分会被截断,此参数的缺省值为空格。
@@ -328,7 +328,6 @@ SharedArrayBuffer 对象用来表示一个通用的,固定长度的原始二
328
328
* @returns {SharedArrayBuffer} 一个大小指定的新 SharedArrayBuffer 对象。其内容被初始化为 0。
329
329
*/
330
330
new SharedArrayBuffer (length)
331
-
332
331
```
333
332
334
333
Atomics 对象提供了一组静态方法用来对 SharedArrayBuffer 对象进行原子操作,这些原子操作属于 Atomics 模块。Atomics 不是构造函数,因此不能使用 new 操作符调用,也不能将其当作函数直接调用。Atomics 的所有属性和方法都是静态的(与 Math 对象一样)。
@@ -530,7 +529,7 @@ console.log(match2[0]); //>> $
530
529
> \( ** ?!pattern\) ** 零宽负向先行断言\( zero-width negative lookahead assertion\)
531
530
> 代表字符串中的一个位置,** 紧接该位置之后** 的字符序列** 不能匹配** pattern;
532
531
>
533
- > ** \( ?< ; =pattern\) ** 零宽正向后行断言\( zero-width positive lookbehind assertion\)
532
+ > ** \( ?< ; =pattern\) ** 零宽正向后行断言\( zero-width positive lookbehind assertion\)
534
533
> 代表字符串中的一个位置,** 紧接该位置之前** 的字符序列** 能够匹配** pattern;
535
534
>
536
535
> ** \( ?< ; !pattern\) ** 零宽负向后行断言\( zero-width negative lookbehind assertion\)
@@ -676,7 +675,7 @@ ES10 之前,当你使用 `JSON.stringify()` 处理无法用 UTF-8 编码表示
676
675
let r;
677
676
r = JSON .stringify (" ❤" ); // 正常的UTF-8字符原样输出
678
677
console .log (r); // >> "❤"
679
-
678
+
680
679
r = JSON .stringify (' \u2764 ' ); // 正常的UTF-8字符编码,输出解码之后的模样
681
680
console .log (r); // >> "❤"
682
681
0 commit comments