5つのプリミティブを除いてすべてオブジェクト
- 数値
- 文字列
- ブール値
- null
- undefined
プリミティブ?
具体的な値(データ)の型
上3つのプリミティブはメソッドが使える
"hoge".lengthといった具合に文字列から直接使用できるが、これはオブジェクトが自動的にラップされているだけで、プリミティブ型がメソッドを持っているわけではない。
変数はオブジェクト
アクティベーションオブジェクトと言う内部オブジェクトのプロパティ。
(※アクティベーションオブジェクトは概念?ES5では表現が変わるとか)
varを付けないとグローバルオブジェクトのプロパティ。
(var宣言された「真の」変数はdeleteでは消せない。)
ECMAScript5(のstrictモード)
strictモードの説明
抜粋メモ
- "use strict"と書くと理解できないブラウザではただの文字列なのでエラーにはならない。
- with文が使えない
- caller、calleeもダメ。
- 関数内thisはグローバルをささず、undefinedを返す。
デバック
JSLint
コードチェッカー。デフォルトはstrictモード
console.dir
オブジェクトの中身列挙。console.logしか使ってなかった、、、、。
余談
本とは関係ないけど。ブラウザコンソールでJSを書くと、実行結果(変数や関数の定義)が残るので、そのまま知らずに続きを書くと結果がめちゃくちゃに見えて混乱する。
あとブラウザ特有のメソッドもある。
0 件のコメント:
コメントを投稿