/** * Radix * * parseInt(string, redix) * * 解析一个字符串(string)并返回指定基数(Radix)的十进制整数 * Radix 2-36之间的整数, 要解析成整数的字符串是多少进制 -> 进制数转换成十进制整数 *//** * 参数 * * string - 如果不是字符串 -> toString(开头的空白忽略) * radix -> 2-36 16要解析的整数字符串是16进制 * * 返回值 * 能解析返回的整数 * 返回NaN: * radix 小于2或大于36, 0除外 * 未填写参数 * 字符串第一个字符不能被正常转换数字的情况 * 字符串第一个字符不符合进制要求的情况 */console.log(parseInt('123', 5));/** * 把 '123' 作为5进制 -> 十进制 * console.log('3'.toString(2)); * 数字 x 进制数 ^ (数字位数 - 1) * 1 * Math.pow(5, 2) + 2 * Math.pow(5, 1) + 3 * Math.pow(5, 0) */// 16进制 -> 0 - fconsole.log(parseInt('0x629eb', 16));/** * 6 * Math.pow(16, 4) + 2 * Math.pow(16, 3) + 9 console.log('3'.toString(2));* Math.pow(16, 2) + 14 * Math.pow(16, 1) + 11 * Math.pow(16, 0) */// 返回NaNconsole.log(parseInt('111', 0)); // 111console.log(parseInt('a12'));console.log(parseInt()); console.log(parseInt('321', 2));/** * 流程 * 1. 可能会转字符串 toString * 2. 对字符串进行整数解析 * 3. 返回整数或NaN * * parseInt的字符串不符合radix基数的数字要求 * * * 支持 + - * 去掉开头的空格 * * 1. 去掉符号 * 2. 对数字进行解析 * * parseInt radix 默认值 -> 10进制错的 * * 0x 0X -> 16进制 * 0 -> 8进制, 10进制 (ES5规范 10进制) -> 都要写清楚radix * 其他开头的 -> 10进制 * *//** * toString * 数字转换为相应进制的字符串数字 */// 官方 严格判断是够为整型var filterInt = function (value) { if(/^(\-|\+)?([0-9]+|Infinity)$/.test(value)) { return Number(value); } return NaN;}
1.toString, 100..toString