console.log(["1", "2", "3"].map(parseInt));
爲什麼沒有返回[1,2,3]返回的卻是[1,NaN,NaN]?
我們先單獨看看map裏面運行會有哪些數據
var a = ["1","2","3"];
a.map(function (value,index) {
console.log("value:",value,"index:",index);
});
結果
在說說parseInt
var b = "123";
console.log(parseInt(b));
結果當然是數字123,平時是這麼用得多吧?然而它居然有第二個參數,所以我在上面打印出了index的值
下面是w3c對parseInt的解釋
我們換一種方式看["1", "2", "3"].map(parseInt)
var a = [];
a.push(parseInt("1",0));
a.push(parseInt("2",1));
a.push(parseInt("3",2));
console.log(a);
結果
第一次:parseInt("1",0) //第二參數爲0相當於默認的方法,所以得到了1
第二次:parseInt("2",1) //由於第二參數爲1小於2了,所以得到了NaN
第三次:parseInt("3",2) //雖然第二參數2符合條件,但是參數一3並不能當成二進制解釋,所以得到了NaN