「JavaScript高級プログラム設計」読書ノート(四):ECMAScript中のタイプ転換

10115 ワード

2.7タイプ変換
1、文字列に変換
すべてのオブジェクトにはtoStering()の方法があり、NumberタイプのtoStering()の方法は、デフォルトモードとベースモードの2つのモードがあり、デフォルトモードtoString()の方法では、対応する10進数の数値値を文字列だけで出力し、ベースモードでは異なる基数で出力することができます.例:
1 var iNum1=10;
2 var iNum2=10.0;
3 var iNum3=10;
4
5 alert(iNum1.toString()); //outpus "10"
6 alert(iNum2.toString()); //outpus "10"
7 alert(iNum3.toString(2)); //outpus "1010"
8 alert(iNum3.toString(8)); //outpus "12"
9 alert(iNum3.toString(16)); //outpus "A"
2、数字に変換する
ECMAScriptは、数字ではない元の値を数値に変換する2つの方法を提供しています.パーrseInt()とパーrseFloat()は、パーrseInt()が1文字ずつ変換されています.数字ではない文字まで.サンプルプログラムは以下の通りです.
1 var iNum1=parseInt("1234blue"); //returns 1234
2 var iNum2=parseInt("0xA"); //returns 10
3 var iNum3=parseInt("22.5"); //returns 22
4 var iNum4=parseInt("blue"); //returns NaN
parseInt()方法には基本パターンがあり、バイナリ、8進数、16進数、または他の任意の進数の文字列を整数に変換できます.ベースはパーrseInt()の2番目のパラメータで指定されています.例は以下の通りです.
1 var iNum1=parseInt("AF",16); //returns 175
2 var iNum2=parseInt("10",2); //returns 2
3 var iNum3=parseInt("10",8); //returns 8
4 var iNum4=parseInt("10",10); //returns 10
5 // : 0
6 var iNum5=parseInt("010"); //returns 8
7 var iNum6=parseInt("010",8); //returns 8
8 var iNum7=parseInt("010",10); //returns 10
paraseFloat()はベースパターンがなく、他はパーrseInt()とほぼ同じである.
1 var fNum1=paraseFloat("1234blue"); //returns 1234.0
2 var fNum2=paraseFloat("0xA"); //returns NaN
3 var fNum3=paraseFloat("22.5"); //returns 22.5
4 var fNum4=paraseFloat("22.34.5"); //returns 22.34
5 var fNum5=paraseFloat("0908"); //returns 908
6 var fNum6=paraseFloat("blue"); //returns NaN
3、強制タイプ変換
ECMAScriptで使用できる強制タイプの変換は以下の通りです.
Boolean(value)——与えられた値をBoolean型に変換します.
Number(value)——与えられた値を数値に変換する(整数または浮動小数点でもよい)
String(value)——与えられた値を文字列に変換する
例:
 1 var b1=Boolean(""); //false - empty string
2 var b2=Boolean("hi"); //true - not empty string
3 var b3=Boolean(100); //true - not zero number
4 var b4=Boolean(null); //false - null
5 var b5=Boolean(0); //false - zero
6 var b6=Boolean(new Object()); //true object
7
8 var i1=Number(false); //0
9 var i2=Number(true); //1
10 var i3=Number(undefined); //NaN
11 var i4=Number(null); //0
12 var f5=Number("5.5"); //5.5
13 var i6=Number("56"); //56
14 var i7=Number("5.6.7"); //NaN
15 var i8=Number(new Object()); //NaN
16 var i9=Number(100); //100