每天3小时学前端之JS-第03天-数值类型

数值

整数与浮点数

js语言的底层根本没有整数,所有数字都是小数(浮点数)
1与1.0是相同的,是同一个数。
1 === 1.0 // true

由于浮点数不是精确的值,所以涉及小数的比较和运算要特别小心。

0.1 + 0.2 === 0.3
// false

0.3 / 0.1
// 2.9999999999999996

(0.3 - 0.2) === (0.2 - 0.1)
// false

进制

js对整数提供四种进制的表示方法:十进制、十六进制、八进制、二进制。

  • 十进制:没有前导0的数值。
  • 八进制:有前缀0o或0O的数值
  • 十六进制:有前缀0x或0X的数值。
  • 二进制:有前缀0b或0B的数值。

默认情况下,js内部会自动将八进制、十六进制、二进制转为十进制

0xac // 172
0o176 // 126
0b111111 // 63

如果八进制、十六进制、二进制的数值里面,出现不属于该进制的数字,就会报错。

0x1h // 报错
0o79 // 报错
0b16 // 报错

特殊数值(了解)

正零和负零

任何一个数都有一个对应的负值,就连0也不例外。

几乎所有场合,正零和负零都会被当作正常的0

+0 // 0
-0 // 0
-0 === +0 // true
0 === -0 // true
0 === +0 // true

唯一有区别的场合是,+0或-0当作分母,返回的值是不相等的。
(1 / +0) === (1 / -0) // false

之所以出现这样结果,是因为除以正零得到+Infinity,除以负零得到-Infinity,这两者是不相等的。

NaN(了解)

NaN是js的特殊值,表示“非数字”(Not a Number),主要出现在将字符串解析成数字出错的场合。

6 - 'a' // NaN
0 / 0 // NaN

NaN的数据类型依然是number

typeof NaN // 'number'

NaN不等于任何值,包括它本身。

NaN === NaN // false

NaN与任何数(包括它自己)的运算,得到的都是NaN。

NaN + 66 // NaN
NaN - 66 // NaN
NaN * 66 // NaN
NaN / 66 // NaN

与数值相关的全局方法

parseInt()

用于将字符串转为整数。

基本用法
转换规则:将参数转换成字符串,去掉空格,只取整数部分,不能转换为数值的会返回NaN

parseInt('   66') // 66
parseInt(6.23) // 6
// 等同于
parseInt('6.23') // 6
parseInt('126**') // 126
parseInt('12.56') // 12
parseInt('16e2') // 16
parseInt('36px') // 36
parseInt('+9') // 9
parseInt('abc') // NaN

进制转换

parseInt方法还可以接受第二个参数(2到36之间),表示被解析的值的进制,返回该值对应的十进制数。默认情况下,parseInt的第二个参数为10,即默认是十进制转十进制。

parseInt('1000') // 1000
parseInt('1000', 10) // 1000
parseInt('1000', 2) // 8
parseInt('1000', 8) // 512
parseInt('1000', 16) // 4096
parseFloat()

用于将一个字符串转为浮点数(小数)。
转换规则:将参数转换成字符串,去掉空格,只取整数部分,不能转换为数值的会返回NaN

parseFloat('123.65a') // 123.65
parseFloat('a') // NaN

练习

进制转换
数值相关全局方法的应用
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值