这篇文章主要为大家展示了“JavaScript数值类型知识有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JavaScript数值类型知识有哪些”这篇文章吧。
整数
十进制
二进制
以零为开头,后面接一个小写或大写的拉丁文字母B(0b或者是0B)
八进制
以0开头,然后是八进制数字序列(0-7) , 如果字面值中的数值超出范围,那么前导0将被忽略,后面的数值当作十进制解析。
十六进制
十六进制字面值的前两位必须是 0x,后跟任何十六进制数字(0~9 及 A~F)。其中,字母 A~F可以大写,也可以小写;
浮点数
保存浮点数需要的内存空间是保存整数值的两倍,因此ECMAScript会不失时机的将浮点数转换为整数值。
var floatNum1 = 1.; // 小数点后面没有数字——解析为 1 var floatNum2 = 10.0; // 整数——解析为 10
默认会将小数点后面带有6个零以上的浮点数值转换为以e表示法表示的数值;
浮点数值的最高精度是17位小数;
数值范围
最大值Number.MAX_VALUE 1.7976931348623157e+308
最小值Number.MIN_VALUE 5e-324
Number.MIN_VALUE < var1 < Number.MAX_VALUE , isFinite(var1)返回false, 否则返回true
如果值超过了js数值范围,那么这个数值自动被转换成特殊的Infinity值。实际情况 Number.MAX_VALUE + 1 还等于 Number.MAX_VALUE;
isFinite()函数判断数值是否位有穷,参数位于最小与最大数值之间时会返回 true
NaN
任何涉及 NaN 的操作(例如 NaN/10)都会返回 NaN
NaN 与任何值都不相等,包括 NaN 本身
实际上只有 0 除以 0 才会返回 NaN,正数除以 0 返回 Infinity,负数除以 0 返回-Infinity
isNaN() 。在接收到一个值之后,会尝试将这个值转换为数值。也适用于对象,先调用对象的valueOf()判断是否能转成数值,若不能调用toString()再测试返回值。
数值转换
有 3 个函数可以把非数值转换为数值: Number()、 parseInt()和 parseFloat()
Number()
如果是boolean类型, true返回1,false返回0;
如果是数值,只是简单的传入返回;
如果是null,返回0
如果是undefined, 返回NaN;
如果是字符串,字符串如果只包含数字,则将其转换成十进制数;如果是有效的浮点格式,将其转换成对应的浮点数值;如果是二进制或十六进制将其转换成对应的十进制数值;
alert(Number("3.14e5")); // 314000 alert(Number("0b1111")); // 15, 将二进制转换为十进制 alert(Number("017")); // 17, 不会转为8进制 alert(Number("0x1a")); // 26, 转换为16进制 alert(Number("")); // 空字符串,返回0 alert(Number("1a")); // 返回NaN
6.如果是对象,调用对象的valueOf()方法,然后依照前面规则转换,如果valueOf返回值是NaN,则调用toString()方法,再依照前面的规则转换返回的字符串
parseInt()
第一个参数,要解析的数值字符串;第二个参数采用多少进制,不指定基数意味着让 parseInt()决定如何解析输入的字符串;
如果第一个字符不是数字字符或者负号, parseInt()就会返回 NaN;
parseInt()转换空字符串会返回 NaN
如果第一个字符是数字字符, parseInt()会继续解析第二个字符,直到解析完所有后续字符或者遇到了一个非数字字符。
parseInt("1234blue") // 1234, blue忽略 parseInt("22.5"); // 22
parseInt不能解析二进制的数值,在ES5中,也不能解析八进制的数值;
parseInt("0b1111"); // 0 parseInt("071"); // 71,
parseFloat()
parseFloat()只解析十进制值,因此它没有用第二个参数;
从第一个字符(位置 0)开始解析每个字符。而且也是一直解析到字符串末尾,或者解析到遇见一个无效的浮点数字字符为止;
它始终都会忽略前导的零
var num1 = parseFloat("1234blue"); //1234 (整数) var num2 = parseFloat("0xA"); //0 var num3 = parseFloat("22.5"); //22.5 var num4 = parseFloat("22.34.5"); //22.34 var num5 = parseFloat("0908.5"); //908.5 var num6 = parseFloat("3.125e7"); //31250000
以上是“JavaScript数值类型知识有哪些”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。