当两个操作数类型不一致,要判断两者是否相等时,需要按照以下规则对数字、字符串、布尔值、对象、null、undefined进行转换之后再判断:1.null与除了undefined之外的任意值均不相等(!图4.3.2类型转换比较对象和原始值稍微有点复杂,有一个函数调用过程。图4.3.3比较对象与原始值在获取原始值的过程中,函数valueOf()先执行,因此看到先输出valueOf函数的提示语句,再执行toString()。......
2025-09-30
JavaScript采用64位浮点格式表示数字,最小值支持“5e-324”,最大值支持“1.7976931 348623157e+308”。和大多数语言一样,JavaScript的整数有最大值限制,若需要进行超过该值的数值运算,则需要进行特殊处理。JavaScript的最大安全整数是9007199254740991,也就是253-1,默认情况下超过该值的计算都是不可靠的。
5.1.1.html查看数值相关常量,如下所示。
动手写5.1.1
执行5.1.1.html,输出结果到网页,如下图所示。
图5.1.1 Number相关常量
Number对象定义了数值基础数据,并提供了数字转换函数。与数学计算相关的函数由Math对象提供。
JavaScript支持的浮点数最小精度接近2.2204460492503130808472633361816E-16,或者 2-52,由此可知JavaScript浮点数运算可能会出现误差,这一点与JavaScript采用的数字表示方式IEEE 754标准有关。
Number提供的函数与全局函数实现同样的功能。下表中的全局判断函数(isFinite、isNaN)接收的参数a如果不是数字,就将其转换为数字之后再进行判断,而Number提供的函数则要求参数a必须是数字,若不是数字则返回false。全局解析函数(parseFloat、parseInt)与Number提供的函数完全一致,如下表所示。
表5.1.1 Number成员函数
(续上表)
(https://www.chuimin.cn)
提示
JavaScript在安全整数范围内进行运算能够获得正确结果,一旦超过安全整数,计算结果会不准确,比如“9007199254740991+1”“9007199254740991+2”这两个表达式的结果都是9007199254740992。
5.1.2.html使用Number提供的函数和全局函数判断参数是否为指定类型,并将字符串解析为对应的数字,如下所示。
动手写5.1.2
执行5.1.2.html,输出判断结果和解析结果到网页,如下图所示。
图5.1.2 Number成员函数
运行结果显示:
◇ 解析函数Number.parseInt与parseInt完全相等,Number.parseFloat与parseFloat完全相等。
◇ 判断函数Number.isFinite仅支持以数字为参数,isFinite支持以数字和字符串为参数。
◇ 判断函数Number.isNaN与isNaN,不一致而且差异较大。
◇ parseInt和parseFloat尽可能解析字符串,一元运算符加号(+)转换操作数为数字时,一旦操作数不是合法的数字或字符串形式的数字,直接返回NaN。
相关文章
当两个操作数类型不一致,要判断两者是否相等时,需要按照以下规则对数字、字符串、布尔值、对象、null、undefined进行转换之后再判断:1.null与除了undefined之外的任意值均不相等(!图4.3.2类型转换比较对象和原始值稍微有点复杂,有一个函数调用过程。图4.3.3比较对象与原始值在获取原始值的过程中,函数valueOf()先执行,因此看到先输出valueOf函数的提示语句,再执行toString()。......
2025-09-30