Changes between Version 4 and Version 5 of HowTo/JavaScriptLanguageIntroduction/ValueAndVariable


Ignore:
Timestamp:
Aug 10, 2010, 9:20:44 AM (14 years ago)
Author:
村山 俊之
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • HowTo/JavaScriptLanguageIntroduction/ValueAndVariable

    v4 v5  
    210210x.showAll();    // "foo: 1, bar: hoge, baz: true" を表示
    211211}}}
     212
     213=== 型を調べる ===
     214
     215ある変数に代入されている値がどの型なのかに応じて、処理を振り分けたい場合があります。そのようなときには、値の型を調べる必要があります。型を調べるには、 '''typeof 演算子'''を利用します。
     216
     217{{{
     218var type = typeof x;    // 変数 x に代入されている値の型を調べる
     219}}}
     220
     221ここで、上記の変数 type に代入される値は、以下のいずれかの文字列です。
     222
     223 * "number" ... 数値
     224 * "string" ... 文字列
     225 * "boolean" ... 真偽値
     226 * "undefined" ... 未定義値
     227 * "function" ... 関数
     228 * "object" ... オブジェクト
     229
     230=== null という値 ===
     231
     232ところで、 !JavaScript には、 '''null''' という名前の値が存在します。他の言語を既に習得されている方にとっては非常に馴染みのある単語かと思われますが、 !JavaScript においても、未定義値である undefined と非常によく似た性質を持つ値で、オブジェクトを返す関数が、オブジェクトを返せないことを表すために、代わりに返す値としてよく使われます。
     233
     234null は undefined と似ているので、等価演算子で比較すると、真を返します。しかし、厳密には違う値なので、厳密等価演算子で比較すると、偽を返します。
     235
     236{{{
     237// この if-else 文は "null == undefined is TRUE!!" を表示
     238if (null == undefined)
     239    alert("null == undefined is TRUE!!");
     240else
     241    alert("null == undefined is FALSE!!");
     242
     243// この if-else 文は "null === undefined is FALSE!!" を表示
     244if (null === undefined)
     245    alert("null === undefined is TRUE!!");
     246else
     247    alert("null === undefined is FALSE!!");
     248}}}
     249
     250また、 null は undefined によく似ていますが、これでも立派なオブジェクト型の値です。
     251
     252{{{
     253var a = typeof null;    // "object"
     254}}}
     255
     256ただ、オブジェクト型であるにも関わらず、 undefined との近似性を表したいのか、メンバに値を代入しようとしたりすると、エラーになります (例外を送出する)。
     257
     258{{{
     259null.hoge = "fuga";         // エラー!
     260var b = null.toString();    // これもエラー!!
     261}}}