再学习parseInt
parseInt: 将参数转换为10进制整数,有两个参数,第一个要转换的数据 (通常为字符串),第二个参数表示进制,范围2~36(用来说明第一个参数的进制规则)。
// 字符串类型
var a = parseInt(‘10’); //将字符串转成整数类型
console.log(a); // 10
var b = parrseInt(‘10true’); //将有效数字部分转为整数,提取开头数字部分
console.log(b); // 10
var c = parseInt(‘10true20’); //只将开头有效部分转为整数
console.log(c); //10
var d = parseInt(‘045zoo’); //开头部分转为整数,数字前面的0省略
console.log(d); //45
var f = parseInt(‘34.5’); //整数部分,小数点非数字部分,舍去
console.log(f); //34
var g = parseInt(‘a3’); //若不是以数字开头,转为NaN(Not a Number 不是数字)的特殊数值
console.log(g); //NaN
//数字类型
var a = parseInt(3.4); //依然转为数字,但是取整
console.log(a); //3
// 不包含数字
var a = parseInt(true);
console.log(a); //NaN
var b = parseInt(null);
console.log(b); //NaN
var c = parseInt(undefined);
console.log(c); //NaN
var d = parseInt([]);
console.log(d); //NaN
var e = parseInt({});
console.log(e); //NaN
// 第二个参数
var a = parseInt(‘99’,10); // 如果字符串为十进制内容,该参数可省略
console.log(a); // 99
var a = parseInt(‘1001’,2); // ‘1001’ 符合二进制规则, 转为十进制整数
console.log(a); // 9
var a = parseInt(‘1001’,10); // ‘1001’同样符合十进制, 转为十进制整数
console.log(a); // 1001
var b = parseInt(‘234’,2); //‘234’不符合二进制的规则
console.log(b); // NaN
var b = parseInt(‘abcde’,2); //‘abcde’不符合二进制的规则
console.log(b); // NaN
var c = parseInt(‘1022’,2); //‘10’部分属于二进制,但‘22’不是,将开头有效的部分提取并转成十进制
console.log(c); //2
// 如果以0x或0X开头,即使不说明进制规则,也能识别
var e = parrseInt(‘0xa’); //0x是十六进制的表示方法,a是十六进制中的10,转换成整数后自动切换为十进制
console.log(e); //10
// 科学计数法
parseInt("6.022e23", 10); // 返回 6
parseInt(6.022e2, 10); // 返回 602
// 非常大非常小的数,js会表示为科学计数法
parseInt(4.7 * 1e22, 10); // 非常大的数值变成 4
parseInt(0.00000000000434, 10); // 非常小的数值变成 4
// 在最新的ES5规范中,以0开头的数字,已经不能再被识别为八进制了。
parseInt("011"); //会当成10进制转换为 11
parseInt("011", 8) //指定了8进制,结果为 9
再学习parseInt
https://blog.jishu6.com:18080//archives/js-parseint