数值和日期

本文详细介绍了JavaScript中的数值类型,包括double-precision的IEEE754表示,以及十进制、二进制、八进制、十六进制、Infinity、NaN等特殊值。还涵盖了Number对象、Math对象和BigInt对象的功能,以及Date对象的用法和常见方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数值

在js中,数值类型通过** double-precision 64-bit binary format IEEE 754**类型实现,一个数字范围可以在 ± 2 − 1022 到 ± 2 + 1023 ±2^{−1022} 到 ±2^{+1023} ±21022±2+1023或者$ ±10^{−308} 到 ±10{+308}$之间,数字精度为53位。可以精确地表达$±2{53} − 1$之内地数字

js的数值类型中还有三个象征性的值

+Infinity; // 正无穷大
-Infinity; // 负无穷大
NaN; // 不是一个数字

十进制数字

十进制数字就是我们日常生活中使用的进制,其是由数字1到9组成的一串数字。

123456789
47

当前,您也可以带上一个前导0,但请注意,只有前导0后面的数字有超过7(不包含7)的数字时,js才会将其认为是一个十进制数字;否则的话,js会将其判断为一个八进制数字。

二进制数字

二进制数字是由0b或者0B开头,由0和1组成的一串数字

0b0110 // 转化为十进制后看,其值是6
0B1001 // 转化为十进制后,其值是9

请注意,当以0b或0B开头,其后却不是0或1时,js会抛出一个异常 "Missing binary digits after 0b"

八进制数字

八进制数字是由0o或者0O开头,由0到7组成的一串数字

0o27 // 23
0O34 // 28

还有一种语法可以表示八进制数字,但是其在严格模式下是被禁止使用的,即您可以使用数字0开头,后面跟一串由数字0到7组成的数字

0123 // 83
034 // 28
0348 // 348

十六进制数字

十六进制数字以0x或者0X开头,后面跟一串由数字0到9、字母a-f(A-F)组成的数字。请注意字母a-f对应的是十六进制中的10-15

0x123
0X123
0x5a // 90

指数

0e-5   // 0
0e+5   // 0
5e1    // 50
175e-2 // 1.75
1e3    // 1000
1e-3   // 0.001
1E3    // 1000

Number对象

下面是Number对象的一些属性和方法

属性作用
Number.MAX_VALUEjs中最大的正数
Number.MIN_VALUEjs中最小的正数
Number.NaN表示不是数字的值
Number.NEGATIVE_INFINITY在溢出时返回,表示负无穷大的值
Number.POSITIVE_INFINITY在溢出时返回,表示正无穷大的值
Number.EPSILON1和大于1的最小值之间的差
Number.MIN_SAFE_INTEGERjs中最小的安全整数( − 2 53 + 1 −2^{53} + 1 253+1)
Number.MAX_SAFE_INTEGERjs中最大的安全整数( + 2 53 − 1 +2^{53}-1 +2531)
方法作用
Number.parseFloat()传入一个字符串参数,返回一个浮点数
Number.parseInt()传入一个字符串参数,返回一个指定基数的整数
Number.isFinite()判断传入的参数是否是一个有限的数字
Number.isInteger()判断传入的参数是否是一个整数
Number.isNaN判断传入的参数是否是NaN
Number.isSafeInteger()判断提供的数字是否在安全整数范围内

下面表格是Number对象原型中的一些方法

方法作用
toExponential()返回一个以指数形式表示数字的字符串
toFixed()返回以定点表示法表示数字的字符串
toPrecision()返回一个字符串,以定点表示法将数字表示为指定精度

Math对象

下面是Math对象的一些常用方法

方法作用
abs()绝对值
sin(), cos(), tan()分别返回传入参数对应的正弦、余弦、和正切的值,注意参数应是以弧度为单位
asin(), acos(), atan(), atan2()反三角函数,参数以弧度为单位
sinh(), cosh(), tanh()双曲函数
asinh(), acosh(), atanh()反双曲函数
pow(), exp(), expm1(), log(), log10(), log1p(), log2()指数和对数函数
floor(), ceil()floor()函数返回小于传入参数的最大整数;ceil()函数返回大于传入参数的最最小整数
min(), max()分别返回以逗号分隔的数字中的最小值或最大值
random()随机返回0到1之间的数字,但不包含1
sqrt(), cbrt(), hypot()平方根,立方根以及所传入参数的平方的和的平凡根
round()round()函数主要用于四舍五入
sign()返回传入参数的符号,用于判断该参数是正数、负数还是0
clz32()32位二进制表示形式中前导0的数量
imul()两个参数的类C 32位乘积的结果。

BigInt对象

BigInt类型可以用于表示超过Number类型表示范围的整数,请注意Math对象的方法不能用于BigInt类型,除此之外,大部分能够用于Number类型的运算基本都能用于BigInt类型

一个BigInt类型的整数是由一串整数加上后缀n组成的

123n //
-123344556543546541342342n

也可以使用BigInt对象的构造器,在其中传入String类型的参数或者Number类型的参数构造一个BigInt对象

const a = BigInt(123); 
const b = BigInt("-123344556543546541342342");

请注意,BigInt类型参与运算,只能产生BigInt类型的值

5n / 2n // 2n

Date对象

Date对象表示的是自UNIX纪元到指定时刻所经过的毫秒数,所谓UNIX纪元指的是1970年1月1日0时0分0秒。可以用如下方式创建一个Date对象

const objectName = new Date([parameters]);

其中parameters是可选的,通常有如下几种情况

  • 没有传入参数,那么会创建一个代表着当前日期时间的Date对象
  • 一个日期时间格式的字符串,那么会创建一个如字符串中所记录时间的Date对象,如果省略时、分、秒,那么会自动将其设置为0
  • 一组关于年、月、日的整数值,例如new Date(1987, 1, 1);,会创建一个日期为1987年1月1日的Date对象
  • 一组关于年、月、日、时、分、秒的整数值

Date对象的常用方法

Date对象的方法分为如下几类

  • setXxx: 设置Date对象的时间日期值
  • getXxx: 得到Date对象的时间日期值
  • toXxx: 得到Date对象的字符串形式的时间日期值
  • 转换方法,将字符串值转化为Date对象
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值