【JavaScript 】パーフェクトJavaScript 感想文
■topic summary
I study JavaScript.
始まるよー。
パーフェクトJavaScript (PERFECT SERIES 4)
- 作者: 井上誠一郎,土江拓郎,浜辺将太
- 出版社/メーカー: 技術評論社
- 発売日: 2011/09/23
- メディア: 大型本
- 購入: 24人 クリック: 588回
- この商品を含むブログ (12件) を見る
以下、気づいたことなど
JavaScript の挙動
JavaScript プログラミングの暗黒面として語られるのがWebブラウザごとの挙動の違いです
そうそう。
・JavaScript 言語処理系の違い
→ECMAScript準拠を打ち出すことで移植性を高める
・レンダリングエンジンの違い
→Acidテストを行い挙動の差異をなくす(明文化された規格ではない)
http://acid3.acidtests.org/
「関数」
関数はある一連の手続きをまとめて外部から呼び出せるようにする仕組みです。関数に引数を渡せ、関数は値を返せます。
なるほど!
関数とパラメータってなんのつながりが?
と思っていたけれど
手続き・・・値を返さない
関数・・・値を返す
という理解ではなくて、
本質的には「外からの呼び出し」であるわけだから、
インプットとアウトプットが存在できるわけだ。
ブロックは、パラメータをつけることで「手続き」だけでなく「関数」のようにふるまうことができるよ。
http://rubyist.g.hatena.ne.jp/muscovyduck/20060518/p1
というのは、こういうニュアンスを指していたのか。
length
'012'.lehgthと書くと、・・・文字列オブジェクトのlengthプロパティにアクセスします
メソッドではない。
文字列オブジェクトと文字列値
new String("a") == new String("a") false new String("a")+'' == new String("a")+'' true
文字列オブジェクトは不変
var s = new String("abc"); s[0] = "x"; s String {0: "a", 1: "b", 2: "c"}
s="abc" s[0]= "x" p s #<= "xbc"
Number.MAX_VALUE.toString(16)
Number.MAX_VALUE.toString(16) "fffffffffffff800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
typeof null
うーん、、、これはバグの原因になりそう
typeof null "object" typeof undefined "undefined"
null
JavaScript
null型の取りうる値はnull値の1値だけ。null値はリテラル値。
nullはリテラル値でundefinedは変数名
null値は「何も参照していない状態」という積極的な意味づけがあるが、
undefined値は文字通り単に未定義な値に過ぎない。
undefinedを識別子にする必要はなく、
グローバル変数undefinedを未代入値の変数にすればいいだけ。