为什么isNaN(true)(或(isNaN(false))返回false?

时间:2020-02-06 14:51:51

标签: javascript

一个简单的问题...

为什么这样: currentMarkerName 或这个: const name = perception && typeof perception.name !== 'undefined' ? perception.name : currentMarkerName; 返回isNaN(true)吗?

我了解到isNaN(false)的评估结果为false,而false的评估结果为0或其他...

但是true的目的不是仅当变量或值“恰好”为数字时才返回false吗?

1 个答案:

答案 0 :(得分:1)

您认为,它们返回false,因为my_list = [1,2,3,4] i=0 while(i < len(my_list)): print(my_list[i]) i+=1 首先将其参数强制为数字,然后返回参数是否为NaN。

isNaNNumber(true),而1Number(false),所以它们都不是NaN。

要执行更严格的检查并避免隐式强制,请改为调用Number.isNaN

0Number.isNaN(true)均返回Number.isNaN(false)