【面接問題】「'1'、'2'、'3'」.map(parseInt)は結果を出力しますか?
1075 ワード
多くの人が面接でこの問題を見たことがありますが、その答えは「1、NaN、NaN」です.なぜですか?
まず、map関数のパラメータ定義を見ます.
以上
参考資料:parseInt:https://www.w3school.com.cn/j... map:https://www.cnblogs.com/zhaox...
まず、map関数のパラメータ定義を見ます.
array.map(function(currentValue,index,arr), thisValue)
具体的な意味は言わないで、更にパーミッションのパラメーターの定義を見てみます.parseInt(string, radix)
多くの人がParseIntを使ったことがありますが、基本的には第二のパラメータはあまり使いません.w 3 schoolではこう定義されています. 。 2 ~ 36 。
0, 10 。 “0x” “0X” , 16 。
2 36, parseInt() NaN。`
私達のこの問題の中で、明らかにその戻り値は実際には:[
parseInt('1', 0),
parseInt('2', 1),
parseInt('3', 2)
]
その定義から、最初に入ってきた2番目のパラメータは0であるので、10をもとに解析します.したがって、戻り数字1自体が2番目に入ってきた2番目のパラメータは1で、2以下です.したがって、戻りNaNは3番目に入ってきた2番目のパラメータは2です.2進数は0、1だけです.だから、文字列3に入ってきた時には識別できません.だから戻ってきたNaNです.以上
参考資料:parseInt:https://www.w3school.com.cn/j... map:https://www.cnblogs.com/zhaox...