1. ホーム >
  2. 書籍 >
  3. Effective JavaScript

Effective JavaScript

監訳

形式:
書籍
発売日:
ISBN:
9784798131115
価格:
本体3,200円+税
仕様:
B5変・216ページ
分類:
プログラミング(Web系)

本書籍の他の形式を確認する

  • このエントリーをはてなブックマークに追加

JavaScriptを使うときに知っておきたい68の冴えたやり方

もはやWebアプリケーション作成のデファクトスタンダードとなった感のある開発言語・JavaScriptが、定番の“Effective”シリーズに、満を持して登場!微妙な挙動に悩むプログラマや、よりシンプルで可読性に富んだコードを志向する開発者に、実践的で即効性のある処方を施してくれる1冊です。68の「なるほど!」は、伊達じゃない。


第1章 JavaScriptに慣れ親しむ

項目1 どのJavaScriptを使っているのかを意識しよう
項目2 JavaScriptの浮動小数点数を理解しよう
項目3 暗黙の型変換に注意しよう
項目4 オブジェクトラッパーよりもプリミティブが好ましい
項目5 型が異なるときに==を使わない
項目6 セミコロン挿入の限度を学ぼう
項目7 文字列は16ビットの符号単位を並べたシーケンスとして考えよう

第2章 変数のスコープ

項目8 グローバルオブジェクトを使うのは、最小限にとどめる
項目9 ローカル変数は、かならず宣言しよう
項目10 withは避けよう
項目11 クロージャと仲良くしよう
項目12 変数の巻き上げ(ホイスティング)を理解する
項目13 ローカルスコープを作るには即時関数式(IIFE)を使おう
項目14 名前付き関数式のスコープは可搬性がないので注意しよう
項目15 ブロックローカルな関数宣言のスコープも可搬性がないので注意しよう
項目16 evalでローカル変数を作らない
項目17 直接evalより、間接evalが好ましい

第3章 関数の扱い

項目18 関数、メソッド、コンストラクタの、呼び出しの違いを理解する
項目19 高階関数を快適に使えるようになろう
項目20 カスタムレシーバ付きでメソッドを呼びだすにはcallを使う
項目21 いくつでも引数をとれる関数を呼び出すにはapplyを使おう
項目22 可変長引数関数を作るには、argumentsを使う
項目23 argumentsオブジェクトを書き換えない
項目24 argumentsへのリファレンスは変数に保存する
項目25 固定レシーバを持つメソッドを抽出するにはbindを使う
項目26 関数をカリー化するには、bindを使う
項目27 コードをカプセル化するには、文字列ではなくクロージャを使う
項目28 関数のtoStringメソッドに依存するのは避けよう
項目29 非標準のスタック調査プロパティを使うのは避けよう

第4章 オブジェクトとプロトタイプ

項目30 prototype、getPrototypeOf、__proto__の違いを理解する
項目31 __proto__よりもObject.getPrototypeOfが好ましい
項目32 __proto__は決して変更しないこと
項目33 newに依存しないコンストラクタの作り方
項目34 メソッドをプロトタイプに格納しよう
項目35 プライベートデータの格納にはクロージャを使おう
項目36 インスタンスの状態は、インスタンスオブジェクトにだけ保存する
項目37 thisの暗黙的な結合を理解しよう
項目38 スーパークラスのコンストラクタは、サブクラスのコンストラクタから呼び出す
項目39 スーパークラスのプロパティ名は、決して再利用しない
項目40 標準クラスからの継承を避ける
項目41 プロトタイプを「実装の詳細」として扱おう
項目42 やみくもなモンキーパッチを避ける

第5章 配列とディクショナリ

項目43 軽量ディクショナリはObjectの直接インスタンスから構築しよう
項目44 プロトタイプ汚染を予防するために、nullプロトタイプを使う
項目45 プロトタイプ汚染を防御するためにhasOwnPropertyを使う
項目46 順序を持つコレクションには、ディクショナリではなく配列を使おう
項目47 Object.prototypeには、列挙されるプロパティを決して追加しない
項目48 列挙の実行中にオブジェクトを変更しない
項目49 配列の反復処理には、for...inループではなく、forループを使おう
項目50 複数のループよりも反復メソッドが好ましい
項目51 「配列のようなオブジェクト」にも、総称的な配列メソッドを再利用できる
項目52 配列コンストラクタよりも配列リテラルのほうが好ましい

第6章 ライブラリとAPI設計

項目53 一貫した規約を維持しよう
項目54 undefinedは「値なし」として扱う
項目55 オプションオブジェクトで、キーワード付き引数群を受け取ろう
項目56 不必要な状態を排除する
項目57 柔軟なインターフェイスのために、構造的な型付けを使う
項目58 配列と「配列のようなもの」を区別しよう
項目59 過剰な型強制を防ごう
項目60 メソッドチェーンをサポートしよう

第7章 並行処理

項目61 イベントキューを入出力待ちでブロックしてはならない
項目62 非同期シーケンスには、ネストした(または名前付きの)コールバックを使う
項目63 エラーの取りこぼしに注意
項目64 非同期ループには再帰関数を使おう
項目65 イベントキューを計算でブロックさせない
項目66 カウンタを使って並行処理を管理する
項目67 非同期コールバックを同期的に呼び出してはいけない
項目68 プロミスを使って非同期ロジックを明快にする

本書はダウンロードファイルの提供はございません。

書籍への問い合わせ

正誤表、追加情報をご確認の上、こちらよりお問い合わせください

書影の利用許諾について

本書籍に関する利用許諾申請はこちらになります

追加情報はありません。

本書に誤りまたは不十分な記述がありました。下記のとおり訂正し、お詫び申し上げます。
なお、こちらは紙の書籍の正誤となります。

ご購入刷数  紙:  電子書籍 最終更新日:2014年02月05日
発生刷 ページ数 書籍改訂刷 電子書籍訂正 内容 登録日
1刷 059
2段落3行目
そのオブジェクトにnameプロパティがないので
そのオブジェクトにusernameプロパティがないので
2013.02.22
1刷 065
下から4行目
●相手のメソッドに存在しないかもしれない
●相手のオブジェクトに存在しないかもしれない
2014.02.05
1刷 069
本文上から4行目と5行目にかけて
可変長引関数
可変長引数関数
2014.01.07
1刷 074
リスト(3つ)
buffer.join(); // "867-5309"
buffer.concat(); // "867-5309"
2013.02.22
1刷 096
図4-6内
add.child
.add.child

add」の前に「.(ドット)」をつける
2013.02.22
1刷 115
2つめのコードスニペット
Object.getPrototypeOf(o) === null; // true
Object.getPrototypeOf(x) === null; // true
2013.02.22
1刷 150
2つめのコードスニペットの5行目
});
}, opts);
2014.02.05
1刷 175
一番下のコードスニペット:上から9行目
downloadFiles23.bind( ... );
downloadBC.bind( ... );
2013.02.22
1刷 175
一番下のコードスニペット:下から3行目
downloadFile3.bind( ... );
downloadC.bind( ... );
2013.02.22

関連書籍

関連記事