首页 > 代码库 > Number()、parseInt()、parseFloat()的区别
Number()、parseInt()、parseFloat()的区别
1、用途
- Number():即转型函数,可用于任何数据类型,在转换字符串时复杂且不够合理;
- parseInt():用于将字符串转换成数值,常用于处理整数;
- parseFloat():用于将字符串转换成数值,常用于处理浮点数。
2、规则
- Number():
1 var num1 = Number(true); //1 Boolean值,true返回1,false返回0; 2 var num2 = Number(123); //123 数字值,返回该数字值; 3 var num3 = Number(null); //0 null值,返回0 4 var num4 = Number(undefined); //NaN undefined,返回NaN; 5 var num5 = Number(‘-01.23‘); //-1.23 只包含数字的字符串,返回忽略前导的0的数字值; 6 var num6 = Number(‘0xA‘); //10 有效的十六进制字符串,返回十进制数字值; 7 var num7 = Number(‘‘); //0 空字符串,返回0; 8 var num8 = Number(‘abc‘); //NaN 除上述格式之外的字符串,返回NaN; 9 var num9 = Number({}); //NaN 对象,调用valueOf()按以上规则转换返回,若返回NaN,调用toString()再按以上规则转换返回.
- parseInt():
1 var num1 = parseInt(‘ abc123‘); //NaN 忽略字符串前空格,若第一个非空格字符不为数字字符或负号,返回NaN; 2 var num2 = parseInt(""); // NaN 空字符串,返回NaN; 3 var num3 = parseInt(" -123abc"); // -123 忽略“a”及其后续字符,返回-123; 4 var num4 = parseInt(22.5); // 22 忽略“.”及其后续字符,返回22; 5 var num5 = parseInt("0xA"); // 10 以0x开头且后跟数字字符,返回十六进制整数; 6 //ECMAScript 3 返回56(八进制)、ECMAScript 5 返回70(十进制) 7 var num6 = parseInt("070"); // 56 以0开头且后跟数字字符,返回八进制整数; 8 var num7 = parseInt("70"); // 70 非0开头且后跟数字字符,返回十进制整数;
在ECMAScript 5 JavaScript引擎中,parseInt()已经不具备解析八进制的能力,因此前导的0会被认为无效,结果返回十进制的整数。为了消除使用parseInt()可能导致上述的困惑,可以为parseInt()提供第二个参数,明确指出转换时使用的基数(即多少进制):
1 var num1 = parseInt(‘A‘,16); //10 按十六进制转换; 2 var num2 = parseInt(‘A‘); //NaN 按默认的十进制转换; 3 var num3 = parseInt("10", 2); //2 按二进制转换; 4 var num4 = parseInt("10", 8); //8 按八进制转换; 5 var num5 = parseInt("10", 10); //10 按十进制转换; 6 var num6 = parseInt("10", 16); //16 按十六进制转换;
- parseFloat():
1 var num1 = parseFloat("1234blue"); //1234 2 var num2 = parseFloat("0xA"); //0 十六进制格式的字符串将转换为0 3 var num3 = parseFloat("22.5"); //22.5 4 var num4 = parseFloat("22.34.5"); //22.34 第一个小数点有效 5 var num5 = parseFloat("0908.5"); //908.5 始终忽略前导的0 6 var num6 = parseFloat("3.125e7"); //31250000 7 var num7 = parseFloat("3.0000"); //3 小数点后全是0则返回整数
Number()、parseInt()、parseFloat()的区别
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。