ES 2019(ES 10)
3651 ワード
一、JSON superset
ECMA-272文法をJSONオーバーセットに拡張します.
動機 ECMAScriptはJSONがサブセットJSON.parseであると主張していますが、それは正しくありません.JSON文字列は転送されていないU+2028 LINE SEPARTORとU+2029 PAAGRAPH SEPAATOR文字を含んでいます.ECMAScript文字列は ではいけません.
二、Optional catch binding
ECMAScriptに対して文法の変更を行い、catchにerrorを書かずに捕獲することができます.
動機この提案によって導入された構文変更は、catchがその周囲の括弧を紐付けする を省略することを可能にする.
原本の書き方
Symbol.prototype.description方法を追加しました.読み取り専用の属性で、Symbolオブジェクトの任意記述の文字列を返します.
デモ
Function.prototype.toStringメソッドを追加し、現在の関数ソースコードを表す文字列を返します.
1.文法
Object.from Enties属性を追加して、キーの値をリストに対してオブジェクト1に変換します.構文
2.demo
JSON.strigifyがフォーマットエラーのUnicode文字列に戻るのを防ぐための提案
七、String.prototype.{trimStart,trimEnd}
String.prototype.trimStartとString.prototype.trimEnd属性を追加して、空白文字を削除して、新しい文字列を返します.
String.prototype.trimStart
Aray.prototype.flatとAray.prototype.flatMapの属性を追加して、配列の内に配列を展開して新しい配列に戻ります.
Aray.prototype.flat
!参考資料
2.demoは、内層配列 を展開する.空のアイテムを除去する
index:要素の索引を処理しています.
array:処理されているグループです.
2.demo
ECMA-272文法をJSONオーバーセットに拡張します.
動機
二、Optional catch binding
ECMAScriptに対して文法の変更を行い、catchにerrorを書かずに捕獲することができます.
動機
原本の書き方
try {
// Web
} catch (unused) {
// web
}
後でこのように書いてもいいです.try {
// do something
} catch {
//
}
三、Symbol.prototype.descriptionSymbol.prototype.description方法を追加しました.読み取り専用の属性で、Symbolオブジェクトの任意記述の文字列を返します.
デモ
console.log(Symbol('desc').description); // expected output: "desc"
console.log(Symbol.iterator.description); // expected output: "Symbol.iterator"
console.log(Symbol.for('foo').description); // expected output: "foo"
console.log(Symbol('foo').description + 'bar'); // expected output: "foobar"
四、Funtions.prototype.toString revisionFunction.prototype.toStringメソッドを追加し、現在の関数ソースコードを表す文字列を返します.
1.文法
function.toString()
2.democonst fun = (name) => { console.log(name) }
fun.toString() // "(name) => { console.log(name) }"
五、Object.from Enties――キーの値をリストに変換するために使用されます.Object.from Enties属性を追加して、キーの値をリストに対してオブジェクト1に変換します.構文
const newObject = Object.fromEntries(iterable);
iterable:同様に、反復可能プロトコルArayまたはMapまたは他のオブジェクトを実装する反復可能なオブジェクト2.demo
const newObject = Object.fromEntries([['a', 1], ['b', 2]]); // { a: 1, b: 2 }
const map = new Map().set('a', 1).set('b', 2);
const newObject1 = Object.fromEntries(map); // { a: 1, b: 2 }
六、Well-formed JSON.stringifyJSON.strigifyがフォーマットエラーのUnicode文字列に戻るのを防ぐための提案
七、String.prototype.{trimStart,trimEnd}
String.prototype.trimStartとString.prototype.trimEnd属性を追加して、空白文字を削除して、新しい文字列を返します.
String.prototype.trimStart
,
1.文法str.trimStart();
2.democonst str = ' ';
const newStr = str.trimStart(); // ' '
String.prototype.trimEnd ,
1.文法str.trimEnd();
2.democonst str = ' ';
const newStr = str.trimEnd(); // ' '
八、Aray.prototype.{flat,flatMap}Aray.prototype.flatとAray.prototype.flatMapの属性を追加して、配列の内に配列を展開して新しい配列に戻ります.
Aray.prototype.flat
!参考資料
,
1.文法const newArray = arr.flat(depth)
depth:内層配列を展開したい層数は、デフォルトでは1です.2.demo
/** : */
const array = [1, [2, [3]]];
const array1 = array.flat(); // [1, 2, [3]]
/** , : */
const arrayInfinity = array.flat(Infinity); // [1, 2, 3]
/** */
const array2 = array.flat(2);
const array = [1, 2, , 3];
const arrayRemove = array.flat(); // [1, 2, 3]
Aray.prototype.flatMap Array.prototype.map, ( )
1.文法const new_array = arr.flatMap((currentValue, index, array) => {
//
})
currentValue:配列中に処理されている現在の要素index:要素の索引を処理しています.
array:処理されているグループです.
2.demo
const array = [1, 2, 3];
const new_array = array.flatMap(ele => [ele * 2]) // [2, 4, 6]
const new_array2 = array.flatMap(ele => [[ele * 2]]) // [[2], [4], [6]]
ギターブ上で修正