typeof(“2px”-1)返回数字;2px〃-1返回NaN.为什么?

typeof("2px" - 1 ) returns number and "2px" - 1 returns NaN. Why?

本文关键字:返回 2px 为什么 NaN typeof 数字      更新时间:2023-09-26

正如标题所说。为什么typeof("2px" - 1)返回number"2px" - 1返回NaN

因为NaN属于number类型。

javascript中的number是IEEE-754双值(wikipedia),NaN是该数据类型的特殊值。因此,结果是一致的。

真正的问题应该是:为什么"2px"-1会导致NaN?Javascript首先使用Number("2px")将字符串转换为数字,这将导致NaN,因为它不是一个可解析的数字。对NaN的任何其他操作也会产生NaN

"2px"-1是数字NaN

NaN代表非数字,这是0除以0或取-1的平方根等运算的结果。还有像这样的非法转换。