ECMAScriptは、JavaScriptのベースとなる標準であり、ESと略されることがよくあります。 ECMAScriptのすべてと、ES2019で追加された機能をご覧ください
ESNextは、JavaScriptの次のバージョンを常に示す名前です。
現在のECMAScriptバージョンはES2018. It was released in June 2018.
歴史的にJavaScriptエディションは夏の間標準化されてきたので、期待できますECMAScript 2019 to be released in summer 2019.
したがって、執筆時点で、ES2018がリリースされており、ESNextはES2019です
ECMAScript標準への提案は、段階的に編成されています。ステージ1〜3は新機能のインキュベーターであり、ステージ4に到達する機能は新しい標準の一部として完成します。
これを書いている時点で、私たちはいくつかの機能を持っていますStage 4。このセクションでそれらを紹介します。主要なブラウザの最新バージョンは、すでにそれらのほとんどを実装しているはずです。
Array.prototype.{flat,flatMap}
- オプションのキャッチバインディング
Object.fromEntries()
String.prototype.{trimStart,trimEnd}
Symbol.prototype.description
- JSONの改善
- 整形式
JSON.stringify()
Function.prototype.toString()
これらの変更の一部は主に内部使用のためのものですが、何が起こっているのかを知ることも良いことです。
ステージ3には他にも機能があり、今後数か月でステージ4に昇格する可能性があります。これらは、このGitHubリポジトリで確認できます。https://github.com/tc39/proposals。
Array.prototype.{flat,flatMap}
flat()
は、多次元配列から1次元配列を作成できる新しい配列インスタンスメソッドです。
例:
['Dog', ['Sheep', 'Wolf']].flat()
//[ 'Dog', 'Sheep', 'Wolf' ]
デフォルトでは、1レベルまでしか「フラット化」されませんが、配列をフラット化するレベル数を設定するパラメーターを追加できます。に設定しますInfinity
無制限のレベルを持つために:
['Dog', ['Sheep', ['Wolf']]].flat()
//[ 'Dog', 'Sheep', [ 'Wolf' ] ]
['Dog', ['Sheep', ['Wolf']]].flat(2)
//[ 'Dog', 'Sheep', 'Wolf' ]
['Dog', ['Sheep', ['Wolf']]].flat(Infinity)
//[ 'Dog', 'Sheep', 'Wolf' ]
JavaScriptに精通している場合map()
配列のメソッドを使用すると、配列のすべての要素で関数を実行できることがわかります。
flatMap()
を組み合わせた新しい配列インスタンスメソッドですflat()
とmap()
。 map()コールバックで配列を返す関数を呼び出すときに便利ですが、結果の配列をフラットにする必要があります。
['My dog', 'is awesome'].map(words => words.split(' '))
//[ [ 'My', 'dog' ], [ 'is', 'awesome' ] ]
['My dog', 'is awesome'].flatMap(words => words.split(' '))
//[ 'My', 'dog', 'is', 'awesome' ]
オプションのキャッチバインディング
try / catchのcatchブロックにパラメーターをバインドする必要がない場合があります。
以前は次のことを行う必要がありました。
try {
//...
} catch (e) {
//handle error
}
使用する必要がなかったとしてもe
エラーを分析します。これで、単純に省略できます。
try {
//...
} catch {
//handle error
}
Object.fromEntries()
オブジェクトにはentries()
メソッド、以来ES2017。
オブジェクト自身のすべてのプロパティを含む配列を、次の配列として返します。[key, value]
ペア:
const person = { name: 'Fred', age: 87 }
Object.entries(person) // [['name', 'Fred'], ['age', 87]]
ES2019は新しいObject.fromEntries()
このようなプロパティの配列から新しいオブジェクトを作成できるメソッド:
const person = { name: 'Fred', age: 87 }
const entries = Object.entries(person)
const newPerson = Object.fromEntries(entries)
person !== newPerson //true
String.prototype.{trimStart,trimEnd}
この機能は、ほぼ1年前からv8 / Chromeの一部であり、ES2019で標準化される予定です。
trimStart()
元の文字列の先頭から空白を削除した新しい文字列を返します
'Testing'.trimStart() //'Testing'
' Testing'.trimStart() //'Testing'
' Testing '.trimStart() //'Testing '
'Testing '.trimStart() //'Testing'
trimEnd()
元の文字列の末尾から空白を削除した新しい文字列を返します
'Testing'.trimEnd() //'Testing'
' Testing'.trimEnd() //' Testing'
' Testing '.trimEnd() //' Testing'
'Testing '.trimEnd() //'Testing'
Symbol.prototype.description
これで、の説明を取得できますシンボルそのにアクセスすることによってdescription
を使用する代わりにプロパティtoString()
方法:
const testSymbol = Symbol('Test')
testSymbol.description // 'Test'
JSONの改善
この変更の前は、行区切り文字(\ u2028)と段落区切り文字(\ u2029)の記号は、次のように解析された文字列では使用できませんでした。JSON。
使用するJSON.parse()
、これらの文字はSyntaxError
しかし、JSON標準で定義されているように、正しく解析されるようになりました。
整形式JSON.stringify()
を修正しますJSON.stringify()
代理UTF-8コードポイント(U + D800からU + DFFF)を処理するときに出力されます。
この変更の前にJSON.stringify()
不正な形式のUnicode文字(「�」)を返します。
これで、これらの代理コードポイントは、を使用して文字列として安全に表すことができます。JSON.stringify()
、を使用して元の表現に変換し直しますJSON.parse()
。
Function.prototype.toString()
関数には常にインスタンスメソッドがありますtoString()
関数コードを含む文字列を返します。
ES2019では、コメントや空白などの他の文字が削除されないように戻り値が変更され、定義された関数を正確に表しています。
以前に持っていた場合:
function /* this is bar */ bar () {}
動作は次のとおりです。
bar.toString() //'function bar() {}
現在、新しい動作は次のとおりです。
bar.toString(); // 'function /* this is bar */ bar () {}'
私の無料ダウンロードJavaScriptビギナーズハンドブック
その他のjsチュートリアル:
- JavaScriptで避けるべきこと(悪い部分)
- JavaScriptでの延期と約束(+ Ember.jsの例)
- JavaScriptを使用してサーバーにファイルをアップロードする方法
- JavaScriptコーディングスタイル
- JavaScript配列の紹介
- JavaScriptプログラミング言語の紹介
- 完全なECMAScript2015-2019ガイド
- JavaScriptの約束を理解する
- JavaScriptの字句構造
- JavaScriptタイプ
- JavaScript変数
- サンプルWebアプリのアイデアのリスト
- JavaScriptを使用した関数型プログラミングの概要
- AsyncとAwaitを備えた最新の非同期JavaScript
- JavaScriptのループとスコープ
- マップJavaScriptデータ構造
- JavaScriptデータ構造の設定
- JavaScriptテンプレートリテラルのガイド
- JavaScriptを学ぶためのロードマップ
- JavaScript式
- JavaScriptタイマーを発見する
- JavaScriptイベントの説明
- JavaScriptループ
- map、filter、reduce、findを使用してJavaScriptループを記述します
- JavaScriptイベントループ
- JavaScript関数
- JavaScript用語集
- JavaScriptクロージャの説明
- JavaScriptの矢印関数のチュートリアル
- JavaScript正規表現のガイド
- JavaScriptで文字列に部分文字列が含まれているかどうかを確認する方法
- JavaScriptで配列からアイテムを削除する方法
- JavaScriptオブジェクトのクローンを作成する方法
- Introduction to Unicode and UTF-8
- JavaScriptのUnicode
- JavaScriptで文字列の最初の文字を大文字にする方法
- JavaScriptで数値を通貨値としてフォーマットする方法
- JavaScriptで文字列を数値に変換する方法
- これはJavaScriptで
- JavaScriptで現在のタイムスタンプを取得する方法
- JavaScriptの厳密なモード
- JavaScript即時呼び出し関数式(IIFE)
- JavaScriptを使用して別のWebページにリダイレクトする方法
- JavaScriptオブジェクトからプロパティを削除する方法
- JavaScriptで配列にアイテムを追加する方法
- JavaScriptオブジェクトのプロパティが未定義かどうかを確認する方法
- ESモジュールの紹介
- CommonJSの紹介
- JavaScript非同期プログラミングとコールバック
- JavaScriptで文字列のすべての出現を置き換える方法
- 最新のJavaScript構文のクイックリファレンスガイド
- JavaScriptで数値の先行ゼロをトリミングする方法
- JavaScriptオブジェクトを検査する方法
- JavaScriptの日付に関する最も信頼のおけるガイド
- Moment.jsチュートリアル
- JavaScriptのセミコロン
- JavaScript算術演算子
- JavaScriptMathオブジェクト
- JavaScriptでランダムで一意の文字列を生成する
- JavaScript関数をスリープ状態にする方法
- JavaScriptのプロトタイプの継承
- JavaScriptの例外
- JavaScriptクラスの使用方法
- JavaScriptクックブック
- JavaScriptでの引用
- JavaScriptでメールアドレスを検証する方法
- JavaScript配列内のオブジェクトのセットの一意のプロパティを取得する方法
- JavaScriptで文字列が別の文字列で始まるかどうかを確認する方法
- JavaScriptで複数行の文字列を作成する方法
- ES6ガイド
- JavaScriptで現在のURLを取得する方法
- ES2016ガイド
- JavaScriptの値で新しい配列を初期化する方法
- ES2017ガイド
- ES2018ガイド
- Array.prototype.map()でAsyncとAwaitを使用する方法
- 非同期vs同期コード
- JavaScriptで2つの数値の間に乱数を生成する方法
- HTML CanvasAPIチュートリアル
- JavaScriptのfor-ofループで反復のインデックスを取得する方法
- シングルページアプリケーションとは何ですか?
- WebAssemblyの紹介
- JSONの概要
- JSONPガイド
- Should you use or learn jQuery in 2020?
- プレーンJavaScriptを使用してDOM要素を非表示にする方法
- JavaScriptで2つのオブジェクトをマージする方法
- JavaScript配列を空にする方法
- JavaScriptでURLをエンコードする方法
- JavaScriptでデフォルトのパラメータ値を設定する方法
- JavaScriptでオブジェクトの配列をプロパティ値で並べ替える方法
- JavaScriptオブジェクトのプロパティの数を数える方法
- JavaScriptでcall()とapply()
- WebRTCライブラリであるPeerJSの紹介
- RestとSpreadを使用してオブジェクトと配列を操作する
- JavaScriptでオブジェクトと配列を破棄する
- JavaScriptをデバッグするための決定的なガイド
- TypeScriptガイド
- JavaScriptでオブジェクトのメソッドを動的に選択する
- 未定義をJavaScriptに渡す即時呼び出し関数式
- 緩く型付けされた言語と強く型付けされた言語
- JavaScriptを使用してDOM要素のスタイルを設定する方法
- JavaScriptでのキャスト
- JavaScriptジェネレーターチュートリアル
- node_modulesフォルダーのサイズは問題ではありません。それは特権です
- JavaScriptでモジュールをインポートする際の予期しない識別子エラーを解決する方法
- JavaScriptでオブジェクトのすべてのメソッドを一覧表示する方法
- 文字列replace()メソッド
- 文字列search()メソッド
- 小さなJavaScriptスニペットを実行する方法
- ES2019ガイド
- 文字列charAt()メソッド
- 文字列charCodeAt()メソッド
- 文字列codePointAt()メソッド
- 文字列concat()メソッド
- 文字列endsWith()メソッド
- 文字列includes()メソッド
- 文字列indexOf()メソッド
- 文字列lastIndexOf()メソッド
- 文字列localeCompare()メソッド
- 文字列match()メソッド
- 文字列normalize()メソッド
- 文字列padEnd()メソッド
- 文字列padStart()メソッド
- 文字列repeat()メソッド
- 文字列slice()メソッド
- 文字列split()メソッド
- 文字列startsWith()メソッド
- String substring()メソッド
- 文字列toLocaleLowerCase()メソッド
- 文字列toLocaleUpperCase()メソッド
- 文字列toLowerCase()メソッド
- String toString()メソッド
- 文字列toUpperCase()メソッド
- 文字列trim()メソッド
- 文字列trimEnd()メソッド
- 文字列trimStart()メソッド
- JavaScriptでのメモ化
- 文字列valueOf()メソッド
- JavaScriptリファレンス:文字列
- 数値isInteger()メソッド
- 数値isNaN()メソッド
- 数値isSafeInteger()メソッド
- Number parseFloat()メソッド
- Number parseInt()メソッド
- Number toString()メソッド
- Number valueOf()メソッド
- Number toPrecision()メソッド
- Number toExponential()メソッド
- Number toLocaleString()メソッド
- Number toFixed()メソッド
- Number isFinite()メソッド
- JavaScriptリファレンス:番号
- JavaScriptプロパティ記述子
- オブジェクトassign()メソッド
- オブジェクトcreate()メソッド
- オブジェクトdefineProperties()メソッド
- オブジェクトdefineProperty()メソッド
- オブジェクトentries()メソッド
- オブジェクトfreeze()メソッド
- オブジェクトのgetOwnPropertyDescriptor()メソッド
- オブジェクトgetOwnPropertyDescriptors()メソッド
- オブジェクトのgetOwnPropertyNames()メソッド
- オブジェクトgetOwnPropertySymbols()メソッド
- オブジェクトのgetPrototypeOf()メソッド
- オブジェクトis()メソッド
- オブジェクトisExtensible()メソッド
- オブジェクトisFrozen()メソッド
- オブジェクトisSealed()メソッド
- オブジェクトkeys()メソッド
- オブジェクトpreventExtensions()メソッド
- オブジェクトseal()メソッド
- オブジェクトsetPrototypeOf()メソッド
- オブジェクトvalues()メソッド
- オブジェクトhasOwnProperty()メソッド
- オブジェクトisPrototypeOf()メソッド
- オブジェクトpropertyIsEnumerable()メソッド
- Object toLocaleString()メソッド
- オブジェクトtoString()メソッド
- オブジェクトvalueOf()メソッド
- JavaScriptリファレンス:オブジェクト
- JavaScript代入演算子
- JavaScriptの国際化
- JavaScripttypeof演算子
- JavaScriptの新しい演算子
- JavaScript比較演算子
- JavaScript演算子の優先順位ルール
- 演算子のJavaScriptインスタンス
- JavaScriptステートメント
- JavaScriptスコープ
- JavaScript型変換(キャスト)
- JavaScriptの等式演算子
- JavaScript if / else条件付き
- JavaScriptSwitch条件付き
- JavaScript削除演算子
- JavaScript関数パラメーター
- JavaScriptスプレッド演算子
- JavaScriptの戻り値
- JavaScript論理演算子
- JavaScript三項演算子
- JavaScript再帰
- JavaScriptオブジェクトのプロパティ
- JavaScriptエラーオブジェクト
- JavaScriptグローバルオブジェクト
- JavaScript filter()関数
- JavaScript map()関数
- JavaScriptのreduce()関数
- JavaScriptの `in`演算子
- JavaScript演算子
- JavaScriptでCSSプロパティの値を取得する方法
- JavaScriptの複数の要素にイベントリスナーを追加する方法
- JavaScriptプライベートクラスフィールド
- JavaScriptで日付値で配列を並べ替える方法
- JavaScriptパブリッククラスフィールド
- JavaScriptシンボル
- JavaScriptbcryptライブラリの使用方法
- オブジェクトの破棄を使用するときにフィールドの名前を変更する方法
- TypeScriptを使用せずにJavaScriptで型をチェックする方法
- JavaScript配列に特定の値が含まれているかどうかを確認する方法
- 二重否定演算子とは何ですか! JavaScriptで行いますか?
- JavaScriptの比較で使用する必要がある等しい演算子はどれですか? == vs ===
- JavaScriptはまだ学ぶ価値がありますか?
- JavaScriptで非同期関数の結果を返す方法
- JavaScriptでオブジェクトが空かどうかを確認する方法
- JavaScriptでforループから抜け出す方法
- JavaScriptで特定のインデックスの配列にアイテムを追加する方法
- JavaScriptオブジェクトのプロトタイプを変更すべきでない理由
- JavaScriptでletとvarを使用することの違いは何ですか?
- JavaScript関数をアクティブ化するために使用されるリンク
- JavaScriptで2つの文字列を結合する方法
- JavaScriptで2つの配列を結合する方法
- JavaScriptの値が配列であるかどうかを確認するにはどうすればよいですか?
- JavaScriptで配列の最後の要素を取得するにはどうすればよいですか?
- Axiosを使用してurlencodedデータを送信する方法
- JavaScriptを使用して明日の日付を取得する方法
- JavaScriptを使用して昨日の日付を取得する方法
- JavaScriptの日付から月の名前を取得する方法
- JavaScriptで2つの日付が同じ日であるかどうかを確認する方法
- JavaScriptで日付が過去の日を参照しているかどうかを確認する方法
- JavaScriptでラベル付けされたステートメント
- JavaScriptで2つ以上のプロミスが解決するのを待つ方法
- JavaScriptで2つの日付の間の日数を取得する方法
- Fetchを使用してファイルをアップロードする方法
- JavaScriptで日付をフォーマットする方法
- JavaScriptでオブジェクトのプロパティを反復処理する方法
- JavaScriptで2つの日付の間の日数を計算する方法
- ESモジュールでトップレベルのawaitを使用する方法
- JavaScriptの動的インポート
- JavaScriptオプションのチェーン
- JavaScriptで文字列内の空白を置き換える方法
- JavaScript Nullish Coalescing
- JavaScriptで配列をフラット化する方法
- JavaScriptのこの10年
- Axiosを使用して認証ヘッダーを送信する方法
- JavaScriptのキーワードと予約語のリスト
- JavaScriptで配列を文字列に変換する方法
- すべてのnode_modulesフォルダーのコンテンツを削除する方法
- JavaScript配列から重複を削除する方法
- JavaScriptでLetvs Const
- さまざまなJavaScriptライブラリでの同じPOSTAPI呼び出し
- JSで配列の最初のn個のアイテムを取得する方法
- JSで配列を複数の等しい部分に分割する方法
- JavaScriptでループを遅くする方法
- HTMLキャンバスに画像をロードする方法
- JavaScriptで文字列を単語にカットする方法
- JavaScriptで配列を半分に分割する方法
- HTMLキャンバスにテキストを書き込む方法
- JavaScriptで文字列の最後の文字を削除する方法
- JavaScriptで文字列の最初の文字を削除する方法
- TypeErrorを修正する方法:オブジェクト '#< Object>'の読み取り専用プロパティ 'exports'に割り当てることはできませんエラー
- 終了インテントポップアップを作成する方法
- 要素が別の要素の子孫であるかどうかを確認する方法
- すべてのAxiosリクエストに資格情報を強制する方法
- JavaScriptの「関数ではありません」エラーを解決する方法
- ギャツビー、ファビコンを変更する方法
- Gatsbyを使用して外部JSファイルをロードする
- JavaScriptを使用してダークモードを検出する方法
- 小包、「regeneratorRuntimeが定義されていません」エラーを修正する方法
- AdblockerがJavaScriptで使用されているかどうかを検出する方法
- TypeScriptの型によるオブジェクトの破壊
- Denoハンドブック:Denoの簡潔な紹介🦕
- JavaScriptを使用してパスまたはURLの最後のセグメントを取得する方法
- JavaScript配列の要素をシャッフルする方法
- JavaScriptオブジェクトにキーが存在するかどうかを確認する方法
- イベントバブリングとイベントキャプチャ
- event.stopPropagation vs event.preventDefault()vs.DOMイベントでfalseを返す
- JavaScriptのプリミティブ型とオブジェクト
- JavaScriptで、値がどのタイプであるかをどのように判断できますか?
- JavaScriptの関数から複数の値を返す方法
- JavaScriptの矢印関数と通常の関数
- オブジェクトのプロパティの値にアクセスするには、どのような方法がありますか?
- JavaScriptのnullとundefinedの違いは何ですか?
- メソッドと関数の違いは何ですか?
- JavaScriptのループから抜け出す方法は何ですか?
- JavaScriptのfor..ofループ
- JavaScriptでのオブジェクトの破壊とは何ですか?
- JavaScriptでの巻き上げとは何ですか?
- JavaScriptでコンマをドットに変更する方法
- DOMを使用する際のタイミングの重要性
- JavaScript配列を逆にする方法
- JavaScriptで値が数値かどうかを確認する方法
- JavaScript関数で無制限のパラメーターを受け入れる方法
- JavaScriptプロキシオブジェクト
- バニラJavaScriptを使用したブラウザでのイベント委任
- JavaScriptスーパーキーワード
- XStateの概要
- 値は参照によって渡されますか、それともJavaScriptの値によって渡されますか?
- JavaScriptのカスタムイベント
- JavaScriptのカスタムエラー
- JavaScriptの名前空間
- JavaScriptでのコンマの奇妙な使用法
- JavaScriptでメソッド呼び出しを連鎖させる
- 約束の拒否を処理する方法
- JavaScriptで2つの配列要素を交換する方法
- Gitbookの使用中に「cb.applyは関数ではありません」エラーを修正する方法
- JavaScriptで配列の先頭にアイテムを追加する方法
- Gatsby、「モジュールgatsby-cli / lib / reporterが見つかりません」エラーを修正
- JavaScript配列内のアイテムのインデックスを取得する方法
- JavaScriptで空のオブジェクトをテストする方法
- JavaScriptでオブジェクトを既存の変数に分解する方法
- 配列JavaScriptデータ構造
- スタックJavaScriptデータ構造
- JavaScriptデータ構造:キュー
- JavaScriptデータ構造:セット
- JavaScriptデータ構造:辞書
- JavaScriptデータ構造:リンクリスト
- JavaScript、関数をエクスポートする方法
- JavaScript、複数の関数をエクスポートする方法
- JavaScript、関数を終了する方法
- JavaScript、文字列内の文字を見つける方法
- JavaScript、配列をフィルタリングする方法
- JavaScript、クラスを拡張する方法
- JavaScript、配列内の重複を見つける方法
- JavaScript、配列のアイテムを置き換える方法
- JavaScriptアルゴリズム:線形検索
- JavaScriptアルゴリズム:バイナリ検索
- JavaScriptアルゴリズム:選択ソート
- JavaScriptアルゴリズム:クイックソート
- JavaScriptアルゴリズム:マージソート
- JavaScriptアルゴリズム:バブルソート