JavaScriptタイプ変換
5215 ワード
jsにおけるデータタイプの変換は、一般的に2つに分類される.すなわち、強制タイプの変換と暗黙タイプの変換(js弱変数タイプの変換を利用する).
強制変換
JavaScript関数を使用して変換します.
数値を文字列に変換
グローバル方法
グローバル方法文字列は、「3.14」などの数字を含み、3.14などの数字に変換されます. 空の文字列は0に変換される. 他の文字列はNaNに変換されます.
グローバル方法
場合によっては、表示変換を提供しなくても、Javascriptは自動タイプ変換を行います.は、非数値であるかどうかを検出するための関数:isNaN(mix) isNaN()関数は、パラメータ値をNumber()で変換しようとしますが、結果が「非数値」であればtrueに戻ります.そうでなければfalseに戻ります.は、順方向演算子(フロントおよびバックを含む)、1元正負符号演算子 をインクリメントする.
これらの操作は、任意のデータタイプの値に適用され、異なるタイプの値に対して、このオペレータは、以下の規則に従う(対照的に発見されたが、その規則は、Number()規則とほぼ同じである).加算演算オペレータプラス記号演算オペレータは、Javascriptでも文字列接続子に使用されるので、プラス記号のルールは2つの場合に分けられます. 2つの操作値が数値である場合、その規則は:(1)一つの操作数がNaNであればNaN(2)Infinity+Infinityであれば、結果はInfinity(3)が-Infinity+(Infinity)であれば、-Infinity(4)がInfinity+(Infinity+(-Infinity)であれば、結果は(N+0)+0)(5)+0)+0+0)(5)+0)(0)+0)+0+0+0+0+0)(5)(0)+0+0)+0+0+0)(5)+0+0+0)(0)+0+0+0)(5)+0)(結果は+0です
一つの操作値が文字列である場合、二つの操作値が文字列である場合、それらをつなぎ合わせて一つの操作値が文字列である場合、他の操作値を文字列に変換してつぎ合わせます.一つの操作数が対象、数値またはブール値である場合、toString()メソッドを呼び出して文字列の値を取得します.次に前の文字列ルールを適用します.undefinedおよびnullに対しては、それぞれString()明示的な変換を呼び出して文字列に変換する.加算では、動作値が文字列タイプの場合、他の操作値を文字列に変換して接続することができます.乗算、減算演算子、取型演算子 これらの操作は演算であるため、共通性があります.動作値の一つが数値でない場合は、暗黙的にNumber()関数を呼び出して変換します.各演算の詳細なルールはECMAScriptの定義を参照してください.論理演算子(!、&、12462) 論理非(!)オペレータはまずBoolean()関数を通じてその操作値をブール値に変換してから逆を求めます.
論理と(&&)操作子は、一つの操作値がブール値でない場合、以下の規則に従って変換します.関係オペレータ(<=>=) 上記のオペレータと同様に、関係オペレータの操作値は任意のタイプであっても良いので、非数値タイプを使って比較に参加する場合も、システムによる暗黙的なタイプの変換が必要である.等しいオペレータ(=) 等しい操作子は操作値を暗黙的に変換して比較します.
強制変換
JavaScript関数を使用して変換します.
数値を文字列に変換
グローバル方法
String()
は、数字を文字列に変換することができる.この方法は、任意の種類の数値、文字、変数、表現に使用できます.String(x) // x
String(123) // 123
String(100 + 23) //
Number方法toString()
も同様の効果がある.x.toString()
(123).toString()
(100 + 23).toString()
ブール値を文字列に変換String(false) // "false"
String(true) // "true"
false.toString() // "false"
true.toString() // "true"
日付を文字列に変換Date()
は文字列を返します.Date() // Thu Jul 17 2014 15:38:19 GMT+0200 (W. Europe Daylight Time)
グローバル方法String()
は、日付オブジェクトを文字列に変換することができる.String(new Date()) // Thu Jul 17 2014 15:38:19 GMT+0200 (W. Europe Daylight Time)
Date方法toString()
も同様の効果がある.obj = new Date()
obj.toString() // Thu Jul 17 2014 15:38:19 GMT+0200 (W. Europe Daylight Time)
文字列を数値に変換グローバル方法
Number()
は、文字列をデジタルに変換することができる.Number("3.14") // 3.14
Number(" ") // 0
Number("") // 0
Number("99 88") // NaN
·parseFloat()
を使用して文字列を浮動小数点数に変換し、parseInt()
は文字列を整数に変換することもできる.parseFloat("123");//123
parseFloat("-123");//123
parseFloat("12.34");//12.34
parseFloat("12.35 ")//12.35
parseFloat("xc");//NaN
parseFloat("0xAA");//0
parseFloat("0110");//110
parseFloat([1]);//1
parseFloat([2,3]);//2
parseFloat([]);//NaN
parseFloat(null)//NaN
parseInt("123");//123
parseInt("+123");//123
parseInt("-123");//123
parseInt("12.3 ")//12
parseInt("abc");//NaN
parseInt([1,2])//1
parseInt([1,2,4])//1
parseInt(" ");//NaN
2進数、8進数、16進数、または他の任意の進数の文字列を整数に変換します.parseInt("AA",16);//170
parseInt("10",2);//2
parseInt("10",8);//8
parseInt("10",10);//10
演算子+
は、変数を数値に変換するために使用することができ、変数が変換できない場合は、依然として数値になりますが、値はNaN:var y = "5"; // y
var x = + y; // x
var y = "John"; // y
var x = + y; // x (NaN)
ブール値を数値に変換グローバル方法
Number()
は、ブール値をデジタルに変換することができる.Number(false) // 0
Number(true) // 1
自動変換タイプ場合によっては、表示変換を提供しなくても、Javascriptは自動タイプ変換を行います.
これらの操作は、任意のデータタイプの値に適用され、異なるタイプの値に対して、このオペレータは、以下の規則に従う(対照的に発見されたが、その規則は、Number()規則とほぼ同じである).
(1) , ( Number()), 1 , 。
(2) , NaN, 。
(3) false, 0 1 , 。
(4) true, 1 1 , 。
(5) , 1 。
(6) , valueOf() , 。 NaN, toString() 。 。
一つの操作値が文字列である場合、二つの操作値が文字列である場合、それらをつなぎ合わせて一つの操作値が文字列である場合、他の操作値を文字列に変換してつぎ合わせます.一つの操作数が対象、数値またはブール値である場合、toString()メソッドを呼び出して文字列の値を取得します.次に前の文字列ルールを適用します.undefinedおよびnullに対しては、それぞれString()明示的な変換を呼び出して文字列に変換する.加算では、動作値が文字列タイプの場合、他の操作値を文字列に変換して接続することができます.
論理と(&&)操作子は、一つの操作値がブール値でない場合、以下の規則に従って変換します.
(1) Boolean() true, , ( Boolean() )
(2) null, null
(3) NaN, NaN
(4) undefined, undefined
論理またはオペレータは、ブール値ではない場合、以下の規則に従う.(1) Boolean() false, , ( Boolean() )
(2) undefined、null NaN (&&)
(1) ,
(2) ,
(3) , ,
(4) , valueOf() ( valueOf() toString() ),
(5) , ,
:NaN , , , false。
(1) ,
(2) , , Number()
(3) , , valueOf() ,
(4)null undefined
(5) NaN, false
(6) ,