Home > JavaScript > JavaScript 第 5 版 3 章まとめ

JavaScript 第 5 版 3 章まとめ

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 は予約語ではない。
  • 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() メソッドが返した文字列を数値に変換する。
  • コンテキストが曖昧な場合(+ 演算子や比較演算子など)は通常、以下の順序で変換される。
    1. オブジェクトの valueOf() メソッドを呼び出す。
    2. 基本データ型の値が返った場合はその値を使う。そうでなければ 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

  • 文字列は不変であり、値によるのか参照によるのかは分からない。
  • 文字列は値により比較される。

Comments:0

Comment Form
Remember personal info

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

Home > JavaScript > JavaScript 第 5 版 3 章まとめ

Search
Feeds
Meta

Return to page top