ホームページ >ウェブフロントエンド >jsチュートリアル >js_基礎知識のparseInt関数についての簡単な説明
非常に人気のある例、parseInt("09")==0 から始めましょう。
parseInt(number,type) この関数の後に基数を表す 2 番目のパラメーターが続かない場合、デフォルトは 10 進数です。
たとえば、parseInt("010",10) は 10 進数の結果: 10、
parseInt("010",2) はバイナリ結果: 2、
parseInt("010" ,8)は 8 進数の結果: 8、
parseInt("010",16) は 2 進数の結果: 16 です。
基本単位が指定されていない場合、デフォルトは 10 進数です。ただし、内部の数値が 0 で始まる場合は 8 進数とみなされます。 16 進数になります。
parseInt("10")==>parseInt("010",10)===>10parseInt("010")==>parseInt("010",8)==>8parseInt( "0x10")==>parseInt("010",16)==>16.
ここでは非常にスムーズに進みました。
多くのことが期待したほどスムーズではありません。たとえば、数値が与えられた通常の数値ではない場合、それをどう説明すればよいでしょうか。いくつかの情報を確認すると、次のようになります。
parseInt(Number) 中央の Number が数値 (0 ~ 9) ではないものに遭遇した場合、解析は中断され、その前の値のみが解析されます。計算には数値は使用されません。たとえば、parseInt("100")===》parseInt("100",10)==>100 および parseInt(" と同等の parseInt ("100x") などです。 0100x")===>parseInt("0100 ")===>parseInt("100",8)===>64.
ここで無視されているように見える点の 1 つは、 16 進数の x は数字ではありません。x も無視されました。試してみたところ、この特別な処理では、
たとえば、parseInt("0x10")===>parseInt("10",16)===>16 が一番上の結果と一致することがわかりました。しかし、これは上の結果と一致しています。つまり、文字が自動的に解析されない場合は、parseInt("0") として解釈されるべきであり、これはルールに反します。
ここで注意が必要です。parseInt の Number は次のようになります。最初の値が 0 でなく、文字でない場合は、すべて通常どおりに実行され、次の時点で停止します。それは一通の手紙に出会う。最初の値が 0 の場合は、次の値に注意する必要があります。非数字が見つかった場合は、上記のルールに従ってください。たとえば、parseInt("0xt")==>parseInt("0x")==>parseInt("",16) は NaN です。
要約すると、parseInt(Number) の値: 最初の数字が 0 でない場合、文字に遭遇すると解析が停止され、最初の数字の場合は文字の前の値が 10 進数として解析されます。数字が文字の場合、値は空であり、空は NaN になります。
例: parseInt("a")==>parseInt("",10)==>NaN.parseInt("10a) ")==>parseInt("10 ")==>parseInt("10",10)==>10;
最初の桁が 0 で、2 番目の桁が 0 でない場合、前の値が解析されます8 進数として、例: parseInt("0a")==>parseInt("0")==>parseInt("0",10)==>0.PS: これは少し特殊です。0a であるためです。は 0 に解析され、8 進法とみなせる構造を持っていません。次のことが明らかです。
parseInt("010a")==>parseInt("010")==>parseInt("10",8)==>8;最初の桁が 0 で、2 番目の桁が x の場合前述のように、文字に遭遇すると解析を停止し、文字の前の値を 16 進数として解析します (例: parseInt("0xt")==>parseInt("",16)==>NaN )。 parseInt("0x12t")==>parseInt("12",16)==>18.