パーフェクト Javascript を読み始めた。 - 2
パーフェクトJavaScript (PERFECT SERIES 4)
- 作者: 井上誠一郎,土江拓郎,浜辺将太
- 出版社/メーカー: 技術評論社
- 発売日: 2011/09/23
- メディア: 大型本
- 購入: 24人 クリック: 568回
- この商品を含むブログ (12件) を見る
誤植的な部分とかがでてきたので、まとめておこうと思ったら、
既にやってる人もいたのでメモ
http://d.hatena.ne.jp/phithon/20120106/perfect_javascript_review_and_errata
あと、気になったところ
P104の図の注釈
js> var n = false || 'x'; // 評価結果は左オペランドの文字列値
↓
js> var n = false || 'x'; // 評価結果は右オペランドの文字列値
というわけで、今日は4-37 論理演算子まで読んだところのまとめ
- if-elseの記述ではわかりやすくするために{}を使う
- 最初のifの真ブロックでifを使って、その中にelseがあると誤動作することもある
- 引用しようと思ったけど、このテンプレートだと見づらかった
- switch-caseで使われる比較は常に"==="(型変換なし比較)
- for each in は、ECMAScriptの仕様にはない Javascript独自実装
- for ( 変数 in オブジェクト式 )
- オブジェクトのプロパティ名を列挙する
- 値へのアクセス、表示などには[](ブラケット)を使う→for ( key in Object ) { var a = Object[key]; } みたいなかんじ
- 列挙の順番は保証されない
- 列挙されない属性がある→Arrayのlengthなど
- プロトタイプ継承したプロパティも列挙される
- for each in は、指定した変数に対してプロパティ値を代入する。
- forではキー、for eachでは値。混乱しそう!
- ラベル: 文
- このブロック内にbreakを書くことで、ラベル内の処理から脱出できる
- Cのラベルは「その場所へ飛ぶ」こちらのラベルは「そのブロックに名前をつけてひとかたまりにする」
- 例外処理
- catchは1つしか書けない。すべての例外をここでcatchする
- finallyは常に実行される。すべての例外と例外がないときでも実行される。
- 上のクラスで伝播するには、catch内で再度throwするか、そもそもcatchを書かない。
- debuggerコマンド
- debuggerで止まることを期待するってことは、break point?それとも処理が止まる?
- 数値は浮動小数点で計算されるので、1/2が0.5になる
- 他の言語だとinteger扱いになっている変数では1/2は0になる。
- 勘違いしやすそう
- Strict EqualsとEquals
- ===はStrict Equals。厳密な比較
- ==はEquals
- x>yとx<=yがどちらも真、どちらも偽になることがある
- 数学的にはそんなことは起こらない
- 型変換が起こる可能性があるので、数学的な比較以外は結果は不定
- 代入時に遅延評価が行える
- 変数、数値以外に式も書けるので三項演算子のようにも使える