- 2008-10-13 (月) 17:10
- JavaScript
3 章 データ型と値
JavaScript のデータ型には以下のものがある。
- 基本データ型(数値、文字列、論理値)
- null、undefined
- 複合データ型(オブジェクト、配列)
- 関数
3.2.4 数値から文字列への変換
- 数値は必要に応じて、自動的に文字列に変換される。
var n = 10;
var s = n + ""; // "10"
var t = String(n); // "10"
var u = n.toString(); // "10"
3.2.5 文字列から数値への変換
- 数値が必要とされる場面で文字列を使用すると、自動的に数値に変換される。
var n = "10" * "5"; // 50
var o = "10" - 0; // 10
var p = "10" + 0; // "100"(文字列連結演算子として解釈されるため)
3.3.1 論理値の型変換
- 数値コンテキストでは true は 1 に、false は 0 に変換される。
- 文字列コンテキストでは true は “true” に、false は “false” という文字列に変換される。
- 論理値コンテキストでは 0 または NaN でない数値は true に、0 または NaN は false に変換される。
- 論理値コンテキストでは空文字でない文字列は true に、空文字は false に変換される。
- null や undefined は false に、null ではないオブジェクトや配列、関数は true に変換される。
- 明示的に型変換したい場合は Boolean() 関数を使う。
3.4 関数
- 関数はデータ型の 1 つである。
- あるオブジェクトのプロパティに関数を代入した場合、その関数はそのオブジェクトのメソッドになる。
3.4.1 関数リテラル
function square(x) { return x * x; } // 関数定義
var square = function(x) { return x * x; } // 関数リテラル
3.5 オブジェクト
- オブジェクトは連想配列として使用できる。よって image.width と image["width"] は同じ意味となる。
3-7. null 値
- null はオブジェクト型で「オブジェクトがない」という意味を表す特別な値。
3-8. 未定義 (undefined) 値
- 宣言されているが値が設定されていない変数、存在しないオブジェクトプロパティを使おうとすると、undefined 値が返る。
- null 値と undefined 値は異なる値だが、等値演算子で比較した場合は同じ値と見なされる。
(null == undefined) // true
(null === undefined) // false
undefined = 1;
alert(undefined) // 1
3.10 正規表現
- Perl の構文が使える。
3.14 基本データ型のラッパーオブジェクト
- 基本データ型の数値、文字列、論理値にはそれぞれ Number、String、Boolean というラッパークラスが用意されている。
- オブジェクトコンテキストで文字列を使用する場合、内部的に String オブジェクトが一時的に作成され、アクセスが終わった段階で回収される。
var s = "string";
alert(typeof(s)); // string
var l = s.length; // length プロパティにアクセスするため、一時的に String オブジェクトが生成されて結果が返る
var S = new String("string");
alert(typeof(S)); // object(オブジェクトは削除されない)
3.14 オブジェクトから基本データ型への変換
- オブジェクトを数値に変換する場合は、まずオブジェクトの valueOf() メソッドが呼び出され、基本データ型の値を返さなかった場合は toString() メソッドが呼び出され、toString() メソッドが返した文字列を数値に変換する。
- コンテキストが曖昧な場合(+ 演算子や比較演算子など)は通常、以下の順序で変換される。
- オブジェクトの valueOf() メソッドを呼び出す。
- 基本データ型の値が返った場合はその値を使う。そうでなければ toString() メソッドを呼び出し文字列に変換する。
- 例外として、Date オブジェクトを + 演算子で使うと、toString() メソッドを使って変換される。
3.15 「値による」データ型操作と「参照による」データ型操作
- 原則として、基本型は値により操作し、参照型は参照で操作する。
- 基本型の場合(値によるコピー)
var n = 1;
var m = n;
m = 2;
alert(n); // 1
alert(m); // 2
var d1 = new Date(2008, 9, 13); // 2008/10/13
var d2 = d1; // d1 オブジェクトへの参照
d2.setDate(1); // 1 日を設定
alert(d1.getDate()); // 1
alert(d2.getDate()); // 1
- Newer: JavaScript 第 5 版 4 章まとめ
- Older: JavaScript 第 5 版 1、2 章まとめ
Comments:0
Trackbacks:0
- Trackback URL for this entry
- http://www.sukechan.net/archives/102/trackback/
- Listed below are links to weblogs that reference
- JavaScript 第 5 版 3 章まとめ from sukechan.net