JavaScript_データタイプ間変換


このブログは子墨のオリジナルです。転載は出典を明記してください。
http://blog.csdn.net/zimo2013/article/details/8906110
1.undefinedの転化問題
   (1).文字列に変換
      undefinedは自動的に文字列「undefined」に変換されます。
var test = undefined + "";    
undefined = "test";  
alert(undefined); //undefined        "test"    
  (2).数字に変換する
      undefinedは数字の場合NaNに変換されます。
var test = undefined - 0;  
alert(test)   //    'NaN',      NaN         'NaN'
  (3)ブールに変換
      undefinedは、ブールタイプの場合はfalseに変換されます。
var test;
if(!test) //   true
{
 test = "test";
} 
  (4).オブジェクトに変換
      undefinedは対象の場合、Errオブジェクトに変換されます。
2.nullの転化問題
nullは基本的にundefinedと同じで、JavaScriptのキーワードですが、まだ一部の違いがあります。
var test;  
alert(null == test);  //true
alert(null == undefined); //true
  (1).文字列に変換
      nullは文字列の場合、文字列「null」に変換されます。
alert(null+"ss");  //    "nullss"
  (2).数字に変換する
      nullは数字の場合、0に変換されます。
var test = null+5;
alert(test);  //5
  (3)ブール型に変換
      nullはundefinedと同じで、ブール演算が必要な場合、falseに変換されます。
if(null)
{
 alert("null");
}
else
{
 alert("is not null");
}//   is not null
  (4).オブジェクトに変換
      nullはオブジェクト環境でErrオブジェクトに変換される。
3.非空文字列の変換問題
   (1).数字に変換する
      非空文字列は、動的に対応する数値またはNaNに変換されます。
var x = "55" - 3 //51
var y = "ab" - 3 //NaN(Not a Number)
  あるいはGlobalのparseFloat()またはparseInt()方法を使用して、parseInt()とparseFloat()方法の戻り値がNaNのブール値に等しいかどうかをisNaN()で確認することができる。
var x = "123";    
var y = "abc";
alert(parseInt(x));   //123
alert(parseInt(y));   //NaN
alert(isNaN(parseInt(x))); //false
alert(isNaN(parseInt(y))); //true (        NaN)
parseInt("1a", 16);   //      16  ,  ,      
   (2)ブール型
      ブール環境では、空でない文字列が自動的にtrueに変換されます。
   (3).オブジェクトに変換
      Stringオブジェクトに変換されます。
4.空の文字列の変換問題
   空の文字列は数字の場合のみ0に変換されます。   ブールの場合はfalseに変換されます。
5.数値の転化問題
   (1).文字列に変換
      文字列では、数字は自動的に文字列に変換されます。
   (2)オブジェクトに変換
      数値はNumberオブジェクトに変換されます。
   (3)ブールに変換
      0とNaNだけがfalseと見なされ、他の値はtrueに変換されます。
6.ブールの転化問題
   (1).文字列に変換
      対応する文字列に変換されます。すなわち「true」と「false」です。
   (2).数字に変換する
      trueは1でfalseは0です。
   (3).オブジェクトに変換
      ボアオブジェクトに変換されます。