JavaScript_データタイプ間変換
このブログは子墨のオリジナルです。転載は出典を明記してください。
http://blog.csdn.net/zimo2013/article/details/8906110
1.undefinedの転化問題
(1).文字列に変換
undefinedは自動的に文字列「undefined」に変換されます。
undefinedは数字の場合NaNに変換されます。
undefinedは、ブールタイプの場合はfalseに変換されます。
undefinedは対象の場合、Errオブジェクトに変換されます。
2.nullの転化問題
nullは基本的にundefinedと同じで、JavaScriptのキーワードですが、まだ一部の違いがあります。
nullは文字列の場合、文字列「null」に変換されます。
nullは数字の場合、0に変換されます。
nullはundefinedと同じで、ブール演算が必要な場合、falseに変換されます。
nullはオブジェクト環境でErrオブジェクトに変換される。
3.非空文字列の変換問題
(1).数字に変換する
非空文字列は、動的に対応する数値またはNaNに変換されます。
ブール環境では、空でない文字列が自動的に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).オブジェクトに変換
ボアオブジェクトに変換されます。
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).オブジェクトに変換
ボアオブジェクトに変換されます。