parseInt(numstring,radix) parseFloat(numstring,radix)
将字符串转为指定进制数的整数或浮点数,若不能转化为进制数,则返回NAN
numstring:字符换类型,要转化的数
radix:进制数默认为十进制(2-36之间),可选
若没有指定radix:a. 若numstring开头为1-9的数字,取默认情况十进制
b. numstring开头为0x,取十六进制
c. numstring开头为0,取八进制(ECMA script3,ECMA script5已取消,也为十进制)
若指定radix:不管指定的数是什么类型,都会将其转化为number,
a. 转化之后的数值若为0或NAN,则取默认情况十进制;
b. 转化之后位于2-36之间,取对应的进制
c. 位于2-36以外,也不是0和NAN,则返回NAN
parseInt("31", 0)
parseInt("31", "aaa") //"aaa"转化为number是NAN
parseInt("31", 10)
//三种情况31都会转为十进制
parseInt("123")//123
//注意的点:preseInt转化过程是按位来转化直到遇到不能转化的值为止(即不是数字),后面即使有可以转化的数值也不会在进行转化了
pareInt("123ab123")//123
//a为非数字不可进行转换自动舍弃后面所有的值
//若能转换一个都没有则返回NaN
parseInt("abc123")//NaN
parseInt("1.5")//1
//直接舍去小数点后的部分
parseInt("1", 0); // 1 等价于 parseInt("1", 10)
parseInt("1", "aaa"); // 1 等价于 parseInt("1", 10)
parseInt("2", 1); // NaN ,进制解析异常
parseInt('3', 2) //基数为2(2进制)表示的数中,最大值小于3,所以无法解析,返回NaN
parseInt("010"); // 8/10 视环境而定 String("010");// 8/10
parseInt(010); // 8 String(010);// 8
parseInt(0x10); // 16 String(0x10);// 16
parseInt("0x10"); // 16 (String("0x10");// "0x10" ) 等价于 parseInt("0x10", 16)// 16
parseInt(" 23 "); // 23
parseInt(" 23 abc"); // 23
parseInt(" 23abc "); // 23
["1", "2", "3"].map(parseInt); // ["1", NaN, NaN]
其他几种关于小数点进位的函数:
Math.floor(num) //向下取整
Math.round(num) //四舍五入
Math.ceil(num) //向上取整
parseInt(numstring,进制数) //将数字转化为指定进制的整型字符串,若numstring是小数则直接舍弃小数点后的部分
parseInt(numstring,进制数) //将数字转化为指定进制的浮点型字符串
//num以0开头,