HTML5 CSS3 JavaScript

WEBYA.IN

menu

ARTICLE

JavaScript 型の変換 2

このエントリーをはてなブックマークに追加
はてなブックマーク - JavaScript 型の変換 2
Bookmark this on Delicious
Share on LinkedIn
Share on GREE
Share on Facebook

JavaScript

前回の「型の変換1」からの続きです。この記事では、論理値、オブジェクトの型の変換について書こうと思います。


理値の型変換

前回の記事でも触れたけど、論理値(true , false)は数値コンテキストで使われると、true は 1に、false は 0に変換されるよ。

var myBool = true;
var result = myBool - 0; // 結果:1

myBool = false;
result = myBool - 0; // 結果:0

理値→文字列

論理値を文字列にした場合は、そのまま true , false に変換されるよ

var myBool = true;
var result = myBool + ""; // 結果:"true"

myBool = false;
result = myBool + ""; // 結果:"false"

// 勿論、result は文字列型になっております。
alert( typeof result ); // 結果:string

Boolean()関数と論理否定演算子

論理値ではないデータを、論理値型にする場合は、Boolean()関数を使用するか、論理否定演算子を2度使うという方法があるよ

var value = 100;
var result = Boolean(value); // 結果:true

value = 0;
result = !!value; // 結果:false

理値falseと等価の値

ちなみに、NaNや0、undefinedは、論理値上では false と等価です。

// NaNは 0 / 0 で簡単に生み出せます
var myNaN = 0/0;
var result = !!myNaN; // 結果:false

// undefinedは未定義型なんで、変数を初期化しなければundefinedになります。
var myUndef;
var result = !!myUndef; // 結果:false

これらのNaN、undefined、0は論理値へ型変換するとfalseになるけど、この値以外のものは全て true へと変換されるよ


ブジェクトの型変換

オブジェクト型はご存知の通り複合型のデータなので、いままでの内容よりちょっと複雑です。まずは論理値で見てみましょう。オブジェクトは生成した時点で true となります。もちろん null で空にすればfalseとなります。

var myObj = new Object(); // オブジェクトの生成
var result = !!myObj; // 論理値に変換してみます。
alert(result); // 結果:true
myObj=null; // 空っぽにしてみましょう。
result=!!myObj; // 論理値に変換してみます。
alert(typeof myObj); // 結果:object
alert(result); // 結果:false

ブジェクトと二つのコンテキスト

細かい仕様は、また今度纏めますが、数値コンテキスト文字列コンテキストで使用した例を挙げます。

var myObj = new Object(); // オブジェクトの生成
result = myObj + ""; // 文字列と結合してみます。
alert(result); // 結果:[object Object]
alert(typeof result); // 結果:string
result = myObj - 0; // 数値化してみます。
alert(result); // 結果:NaN
alert(typeof result); // 結果:number

型の変換については、他にもいろんなパターンが考えられるよ。
また気がついたら書き連ねるよ

お広告

copyright webya.in 2010