面接小題:parseIntとmap

1843 ワード

parseInt()のいくつかの例
var b = parseInt("01");
alert("b="+b);
var c = parseInt("09/08/2009");
alert("c="+c);

結果:b=1,c=0
parseInt()は文字列を解析し、整数を返します.いくつかの特徴があります.
1.解析文字列の先頭と最後のスペースを無視します.すなわち、「111」と「111」は同じです.
2.正規フォーマットはparseInt(string,radix)です.
1番目のパラメータは解析された文字列で、2番目のパラメータは進数です(いくつかありません)
2番目のパラメータの特徴:
①radixが省略または0の場合はデフォルト進数(10進数)で解析
②radixは2~36の整数で、この範囲外であればNaNを返します
③stringの先頭文字が0の場合、デフォルトでは8進数に解析されます.stringヘッダが0 x(0 X)の場合、デフォルトでは16進数に解析されます.その他の場合、デフォルトは10進数です.
④2番目のパラメータを加えたほうがいいです.そうしないと、頭文字が0になったとしても、8進数で行うべきです.一部のブラウザでは、ffのように10進数で行うことがあります.
3.解析は、最初に解析可能な文字から始まり、最初に解析できない文字(スペース、句読点など)まで終了します.後の文字は解析されません.最初の文字が解析できない場合は、NaNを返します.
この問題に戻って分析するb 0, 8 , 8 1。 1。
c 0, 8 , 9 8 , 9 ,parseInt("09/08/2009") parseInt("0"), 0
:8 8 , 7
変形:
var c = parseInt("0119/08/2009");
alert("c="+c);

var c = parseInt("0119/08/2009"); alert("c="+c); 分析: parseInt("011"),0*8^2+1*8^1+1*8^0=0+8+1=9, c=9parseFloat()とparseInt()parseInt()はパラメータ付きで、バイナリ、8進数または16進数(デフォルトの10進数)を指定できますが、parseFloat()はパラメータなしで、8進数、16進数を解析することはできません.10進数でのみ実行できます.
parseInt()と.map()結合の例["1", "2", "3"].map(parseInt)
mapメソッドarray 1.map(callbackfn[,thisArg])配列の各要素に対して、定義されたコールバック関数を呼び出し、結果パラメータを含む配列を返します.
array 1:必須です.配列オブジェクト
callbackfn:必須です.最大3つのパラメータ(配列要素の値、配列要素のインデックス、その要素を含む配列オブジェクト)を受け入れるコールバック関数
thisArg:オプションです.
すなわち、元の例は[parseInt("1",0),parseInt("2",1),parseInt("3",2)]分析に相当する:1は10進数変換で出力1は2~36の間ではなく、出力NaN文字列「3」には合法的なバイナリ数がなく、出力NaNであるため、最終結果は[1,NaN,NaN]である