Javascript 为什么isNaN(true)(或(isNaN(false))返回false?
只是一个简单的问题 为什么会这样:Javascript 为什么isNaN(true)(或(isNaN(false))返回false?,javascript,Javascript,只是一个简单的问题 为什么会这样: isNaN(真) 或者这个: isNaN(假) 返回false 我可以理解,false的计算结果是0,而true的计算结果是1或其他什么 但是,isNaN(…)的目的不是仅当变量或值“恰好”是一个数字时才返回false吗?正如您所想,它们返回false,因为isNaN首先将其参数强制为一个数字,然后返回参数是否为NaN Number(true)是1,Number(false)是0,因此两者都不是NaN 要执行更严格的检查并避免隐式强制,请调用: Number.
isNaN(真)
或者这个:
isNaN(假)
返回false
我可以理解,false
的计算结果是0
,而true
的计算结果是1
或其他什么
但是,
isNaN(…)
的目的不是仅当变量或值“恰好”是一个数字时才返回false吗?正如您所想,它们返回false,因为isNaN
首先将其参数强制为一个数字,然后返回参数是否为NaN
Number(true)
是1
,Number(false)
是0
,因此两者都不是NaN
要执行更严格的检查并避免隐式强制,请调用:
Number.isNaN(true)
和Number.isNaN(false)
返回true
isNaN仅当值不是数字时返回true“函数应解释为回答以下问题:“当强制为数值时,该值是否为IEEE-754‘不是数字’值?”也就是说,基本值仍然是一个数字,0或1。虽然问题略有不同,但“为什么思考isNaN
是isNumeric
函数的合适替代品”的答案是不正确的。