这是我参与更文挑战的第5天,活动详情查看: 更文挑战
关于Number
Number类型也是JavaScript的基本数据类型之一,同时也是最有意思的一种数据类型。下面我们就一起来了解一下它吧
数值字面量
整数
整数字面量写法是区分进制的,整数可以被表示成十进制(基数为10)、八进制(基数为8)以及十六进制(基数为16)
八进制
对于八进制字面量,书写时候必须以0开头,然后是相应的八进制数字(数值0-7)。如果字面量中包含的数字超出了应有的范围,就会忽略了前缀的0,后面的数被当成十进制。
let num1 = 070 // 八进制的56
let num2 = 079 // 9 >= 8 无效的八进制值,忽略0,当成79处理
let num3 = 08 // 8 >= 8 无效的八进制值,忽略0,当成8处理
十进制
十进制是最基本的数值字面量格式,也是我们最常见到的实质字面量,可以直接在代码中输入
十六进制
对于十六进制字面量,书写时候必须以0x开头,然后是相应的十六进制数字(0-7级A-F)。十六进制中的字母大小写均可
let num1 = 0xA // 10
let num2 = 0x1f // 31
浮点数
浮点数就是数学概念中的小数,有整数、小数点、小数部分组成,其中整数部分如果为0可以省略(但不推荐),小数点和小数部分必须有,因为小数会比整数更占用内存,所以js会在符合条件的情况下尽量将小数转为整数,比如小数点后面无值或者小数点后面的数字都为0,那这个数字将被转换为一个整数(因为小数)
let floatNum1 = 1.1 // 有效
let floatNum2 = 0.1 // 有效
let floatNum3 = .1 // 有效但不推荐
let floatNum4 = 2.0 // 会被转为整数 2
对于太大或太小的数,浮点值可以用科学计数法表示
let floatNum1 = 3.125e7 // 等于31250000
let floatNum2 = 3e-7 // 等于0.0000003
默认情况下,如果一个小数数的小数点后面有6个以上的0时,这个小数会自动被转换为科学计数法
let floatNum1 = 0.000000003 // 3e-9
浮点数的精确度最高可达17位小数。还有一个经典的问题,在js中,小数的操作时存在精度问题的,例如
console.log(0.1 + 0.2);//0.30000000000000004
console.log(1.0 - 0.9);//0.09999999999999998
console.log(19.9 * 100);//1989.9999999999998
console.log(6.6 / 0.2);//32.99999999999999
感兴趣的朋友可以自己去搜索一下相关的解决方案
Infinity 无穷
由于在js重,每个数值都是占用内存的,而js内存是有限的,所以js并不支持这个世界上所有的数,js中支持的最大数值为1.7976931348623157e+308,可以用Number.MAX_VALUE
获取,如果目标数值比这个数值大,则会被自动转化为 无穷大Infinity
,js中支持的最小的数为5e-324,可以用 Number.MIN_VALUE
获取,如果目标值比这个值小,则会被转化为 无穷小 -Infinity
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载完但解压或打开不了?
- 找不到素材资源介绍文章里的示例图片?
- 模板不会安装或需要功能定制以及二次开发?
发表评论
还没有评论,快来抢沙发吧!