44个javascript问题-31(来自知乎)

console.log("1 2 3".replace(/\d/g, parseInt));
输出1,NaN,3.
首先再看看parseInt函数
parseInt(3,2) ->输出NaN,因为2进制没有3
parseInt(3,0) ->输出3,进制如果传0就默认以10进制转换
parseInt(3,1) ->输出NaN,进制必须是大于1小于36
顺便记录一下,一个数字,要显示它的二进制形式,应该这么玩
(10).toString(2) ->输出1010
下面进入正题,题目中传给parseInt的是字符串的当前字符和当前字符的索引,如下所示:
1 ->传给parseInt的参数是1,0,因此输出1
2 ->传给parseInt的参数是2,2,注意1和2之间有一个空格,parseInt(2,2)输出NaN
3 ->传给parseInt的参数是3,4,注意2和3之间有一个空格,parseInt(3,4)输出3

你可能感兴趣的:(javascript)