parseInt() 函数
parseInt(string, radix) 将一个字符串 string 转换为 radix 进制的整数, radix 为介于2-36之间的数。
parseInt()一般用于数值转换,在转换字符串时,更多的是看其是否符合数值模式。它会忽略字符串前面的空格,直至找到第一个非空格字符。如果第一个字符不是数字字符或者负号,parseInt()就会返回 NaN;也就是说,用 parseInt()转换空字符串会返回 NaN(Number()对空字符返回 0)。如果第一个字符是数字字符,parseInt()会继续解析第二个字符,直到解析完所有后续字符或者遇到了一个非数字字符。
如果字符串中的第一个字符是数字字符,parseInt()也能够识别出各种整数格式,也就是说,如果字符串以"0x"开头且后跟数字字符,就会将其当作一
个十六进制整数;如果字符串以"0"开头且后跟数字字符,则会将其当作一个八进制数来解析。
var num1 = parseInt("1234blue"); // 1234
var num2 = parseInt(""); // NaN
var num3 = parseInt("0xA"); // 10(十六进制数)
var num4 = parseInt(22.5); // 22
var num5 = parseInt("070"); // 56(八进制数)
var num6 = parseInt("70"); // 70(十进制数)
var num7 = parseInt("0xf"); // 15(十六进制数)
parseInt()拥有第二个参数,转换时使用的基数(即多少进制),会把第一个参数以第二个参数的进制来表示,而返回的值则是十进制的。
var num1 = parseInt("10", 2); //2 (按二进制解析)==> 2^0*0+2^1*1=2
var num2 = parseInt("10", 8); //8 (按八进制解析)==> 8^0*0+8*^1*1=8
var num3 = parseInt("10", 10); //10 (按十进制解析)==> 10^0*0+10*^1*1=10
var num4 = parseInt("10", 16); //16 (按十六进制解析)==> 16^0*0+16*^1*1=16
toString() 方法
接下来再来看toString()方法(注意:null 和 undefined 值没有这个方法)
toString() 方法返回指定对象的字符串形式。
var value1 = 10;
var value2 = true;
var value3 = null;
var value4;
console.log(String(value1)); // "10"
console.log(String(value2)); // "true"
console.log(String(value3)); // "null"
console.log(String(value4)); // "undefined"
一般情况下,调用 toString()方法不必传递参数,但是,在调用数值的 toString()方法时,可以传递一个参数:输出数值的基数。默认情况下,toString()方法以十进制格式返回数值的字符串表示。而通过传递基数,toString()可以输出以二进制、八进制、十六进制,乃至其他任意有效进制格
式表示的字符串值。
var num = 10;
console.log(num.toString()); // "10" 默认以十进制表示
console.log(num.toString(2)); // "1010" 以二进制表示
console.log(num.toString(8)); // "12" 以八进制表示
console.log(num.toString(10)); // "10" 以十进制表示
console.log(num.toString(16)); // "a" 以十六进制表示
总结
parseInt() 第二个参数会把第一个参数以第二个参数的进制来解析,返回十进制的值
toString() 会将数值以二进制、八进制、十六进制,乃至其他任意有效进制格式表示
var num = 6
console.log(num.toString(2),parseInt(num.toString(2),2)) // 110 6
自我理解为“互为逆运算”
来源:CSDN
作者:阿丶炳
链接:https://blog.csdn.net/AAABingBing/article/details/103857706