ホームページ
本書をサポートしてください:購入する (PDF, EPUB, MOBI) または 寄付する
(広告です。ブロックしないでください。)

ES2016とES2017を探る

目次

    1. 本書について知っておくべきこと
      1. サポート
    2. 著者について
  1. I 背景
    1. 1. ECMAScript機能のTC39プロセス
      1. 1.1 ECMAScriptを設計するのは誰か?
      2. 1.2 ECMAScriptはどのように設計されているか?
        1. 1.2.1 問題:ECMAScript 2015 (ES6)はリリースが大きすぎた
        2. 1.2.2 解決策:TC39プロセス
      3. 1.3 ECMAScript 20xx機能とは呼ばないでください
      4. 1.4 参考資料
    2. 2. FAQ:ES2016とES2017
      1. 2.1 ECMAScript 2016は小さすぎませんか?
  2. II ECMAScript 2016
    1. 3. Array.prototype.includes
      1. 3.1 概要
      2. 3.2 Arrayメソッドincludes
      3. 3.3 よくある質問
      4. 3.4 参考資料
    2. 4. べき乗演算子 (**)
      1. 4.1 概要
      2. 4.2 べき乗のための中置演算子
      3. 4.3
      4. 4.4 優先順位
      5. 4.5 参考資料
  3. III ECMAScript 2017
    1. 5. 非同期関数
      1. 5.1 概要
        1. 5.1.1 バリアント
        2. 5.1.2 非同期関数は常にPromiseを返す
        3. 5.1.3 awaitによる非同期計算の結果とエラーの処理
      2. 5.2 非同期関数の理解
        1. 5.2.1 ジェネレータを使用した非同期コードの記述
        2. 5.2.2 非同期関数を使用した非同期コードの記述
        3. 5.2.3 非同期関数は同期的に開始され、非同期的に解決される
        4. 5.2.4 返されたPromiseはラップされない
      3. 5.3 awaitの使用に関するヒント
        1. 5.3.1 awaitを忘れないでください
        2. 5.3.2 「実行して忘れる」場合はawaitは必要ありません
        3. 5.3.3 awaitはシーケンシャル、Promise.all()はパラレル
      4. 5.4 非同期関数とコールバック
        1. 5.4.1 Array.prototype.map()
        2. 5.4.2 Array.prototype.forEach()
      5. 5.5 非同期関数を使用するためのヒント
        1. 5.5.1 Promiseを理解する
        2. 5.5.2 即時呼び出し式非同期関数式
        3. 5.5.3 非同期関数による単体テスト
        4. 5.5.4 未処理の拒否を心配する必要はありません
      6. 5.6 参考資料
    2. 6. 共有メモリとアトミック操作
      1. 6.1 並列処理と並行処理
        1. 6.1.1 並列処理モデル
      2. 6.2 JS並列処理の歴史
        1. 6.2.1 次のステップ:SharedArrayBuffer
      3. 6.3 共有Array Buffer
        1. 6.3.1 共有Array Bufferの作成と送信
        2. 6.3.2 共有Array Bufferの受信
      4. 6.4 アトミック操作:共有データへの安全なアクセス
        1. 6.4.1 問題:最適化により、ワーカー間でコードが予測不可能になる
        2. 6.4.2 解決策:アトミック操作
        3. 6.4.3 問題:破損した値
      5. 6.5 共有Array Bufferの使用
        1. 6.5.1 共有Array BufferとJavaScriptの実行完了セマンティクス
        2. 6.5.2 共有Array Bufferとasm.jsおよびWebAssembly
        3. 6.5.3 整数以外のデータの共有
        4. 6.5.4 共有Array Bufferを使用するコードはどの程度高速か?
      6. 6.6
        1. 6.6.1 共有ロックの使用
        2. 6.6.2 共有ロックの実装
        3. 6.6.3 例の結論
      7. 6.7 共有メモリとアトミック操作のAPI
        1. 6.7.1 SharedArrayBuffer
        2. 6.7.2 Atomics
      8. 6.8 FAQ
        1. 6.8.1 どのブラウザがShared Array Bufferをサポートしていますか?
      9. 6.9 参考資料
    3. 7. Object.entries()Object.values()
      1. 7.1 概要
        1. 7.1.1 Object.entries()
        2. 7.1.2 Object.values()
      2. 7.2 Object.entries()
        1. 7.2.1 Object.entries()によるMapの設定
        2. 7.2.2 FAQ:Object.entries()
      3. 7.3 Object.values()
    4. 8. 新しい文字列メソッド:padStartpadEnd
      1. 8.1 概要
      2. 8.2 文字列のパディングが必要な理由
      3. 8.3 String.prototype.padStart(maxLength, fillString=' ')
        1. 8.3.1 padStart()の簡単な実装
      4. 8.4 String.prototype.padEnd(maxLength, fillString=' ')
      5. 8.5 FAQ:padStartpadEnd
        1. 8.5.1 パディングメソッドがpadLeftpadRightと呼ばれていないのはなぜですか?
    5. 9. Object.getOwnPropertyDescriptors()
      1. 9.1 概要
      2. 9.2 Object.getOwnPropertyDescriptors()
      3. 9.3 Object.getOwnPropertyDescriptors()のユースケース
        1. 9.3.1 ユースケース:プロパティをオブジェクトにコピーする
        2. 9.3.2 ユースケース:オブジェクトのクローン作成
        3. 9.3.3 ユースケース:任意のプロトタイプを持つクロスプラットフォームオブジェクトリテラル
      4. 9.4 落とし穴:superを使用するメソッドのコピー
    6. 10. 関数パラメータリストと呼び出しにおける末尾のカンマ
      1. 10.1 概要
      2. 10.2 オブジェクトリテラルと配列リテラルにおける末尾のカンマ
      3. 10.3 機能:パラメータ定義と関数呼び出しで末尾のカンマを許可する
© 2016 - 2018 Axel Rauschmayer