一文搞懂parseInt和parseFloat用法和区别
七娃博客20人阅读
最近写代码发现parseInt和parseFloat这两个方法长的好像啊,用法也很类似,不仔细看还以为同一个方法呢,仔细研究一下发现二者还是有区别的。建议大家静下心来好好学习一下!
不同点
定义上不同
parseInt(string, radix) 解析一个字符串并返回指定基数的十进制整数,radix 是 2-36 之间的整数,表示被解析字符串的基数。
parseFloat(string) 解析一个字符串,并返回一个浮点数。
语法不同
parseInt中的radix为0或空时,会根据string判断数字的基数
如果 string 以 "0x" 开头,parseInt() 会把 string 的其余部分解析为十六进制的整数。
如果 string 以 1 ~ 9 的数字开头,parseInt() 将把它解析为十进制的整数。
如果 string 以"0"为开始时旧的浏览器默认使用八进制基数。ECMAScript 5,默认的是十进制的基数。
parseFloat没有radix参数,默认以10进制为基数,从左往右逐字符解析。
返回值类型不同
parseInt返回的是十进制整数;
parseFloat返回的是十进制浮点数
共同点
0.二者都会逐字符解析,直到遇到无法解析的字符。
1.字符串中只返回第一个数字。
2.开头和结尾的空格是允许的。
3.如果字符串的第一个字符不能被转换为数字,都会返回NaN。
console.log(parseInt( null )) // NaN console.log(parseInt( "0x1fa" )) //506 console.log(parseInt( "0x1fa",36 )) //1541494 console.log(parseInt( "1232.22" )) //1232 console.log(parseInt( "34 45 66" )) //34 console.log(parseInt( " 40 year " )) //40 console.log(parseInt( undefined )) // NaN console.log( "---------" ) //40 console.log(parseFloat( "0x1fa" )) //0 console.log(parseFloat( null )) // NaN console.log(parseFloat( "1232.22" )) //1232.22 console.log(parseFloat( "34 45 66" )) //34 console.log(parseFloat( " 40 year " )) //40 console.log(parseFloat( undefined )) // NaN
注意:两者在使用前都需要判断是否为null
评论 | 0 条评论
登录之后才可留言,前往登录