关于 ["1", "2", "3"].map(parseInt) 为什么返回 [1,NaN,NaN]?

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值