如果不是字符串->toString(开头的空白忽略)
解析一个字符串(string)并返回指定基数(Radix)的十进制整数。
console.log(parseInt('10', 2)); // 2
// '10' 被当做 2 进制数,要通过 parseInt 转成 -> 10进制的整数 -> 返回
console.log(parseInt('10', 0)); // 10
console.log(parseInt('0x629eb', 16));
console.log(parseInt('0x629eb'));
console.log(parseInt('1a03d', 16));
console.log(parseInt(' 10', 3));
console.log(parseInt('123', 2));
console.log(parseInt('113', 2));
console.log(parseInt('-1 13', 2));
console.log(parseInt('13', 1)); // NaN
console.log(parseInt('13', 48)); // NaN
console.log(parseInt()); // NaN
console.log(parseInt('a1')); // NaN
console.log(parseInt('1a1')); // 1
console.log(parseInt('11a')); // 11
console.log(parseInt('123', 5)); // 38
// 3 * 5 ^ 0 = 3
// 2 * 5 ^ 1 = 10
// 1 * 5 ^ 2 = 25
// 3 + 10 + 25 = 38
console.log(parseInt('0x629eb', 16)); // 403947
// 0123456789 abcdef -> 0-9, a-f(10-15)
// 0x 是前缀,不管,从6开始往后才是需要计算的
b(11) * 16 ^ 0 = 11
e(14) * 16 ^ 1 = 224
9 * 16 ^ 2 = 2304
2 * 16 ^ 3 = 8192
6 * 16 ^ 4 = 393216
= 403947
出来的是字符串
console.log((3).toString(2)); // 把 3 作为 10进制 转为 2进制
var filterInt = function(string) {
if (/^(\\-|\\+)?([0-9]+|Infinity)$/.test(string)) {
return Number(string);
}
return NaN;
}