为什么isNaN(undefined)!== Number.isNaN(undefined)为true

时间:2019-07-31 13:40:56

标签: javascript

为什么

isNaN(undefined) !== Number.isNaN(undefined) 

是真的。

为什么是真的

console.log(isNaN(undefined)) //is true

但是如果我添加Number.

console.log(Number.isNaN(undefined)) // is false

2 个答案:

答案 0 :(得分:1)

Number.isNaN函数是全局isNaN函数的“更强大的版本”。具体来说,全局attrs函数的规则很奇怪,这就是为什么isNaN通常是首选的原因。参见https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/isNaN#Description

因此,Number.isNaN本质上检查您的值是否不是数字,而isNaN检查您的值是否为Number.isNaN。当然,并非所有非数字值都为NaN-NaN,不是"test",但也不是数字。

答案 1 :(得分:0)

!anythingparseFloat('27')将始终为您提供布尔值。

27为您提供数字27

false不是List<UserDeactivationThreshold> thresholds = new ArrayList<>(); Map<String, UserDeactivationThreshold> adminUDTMap = new HashMap<String, UserDeactivationThreshold>(); for(int i = 0 ; i < thresholds.size() ; i++){ UserDeactivationThreshold udt = thresholds.get(i); UserDeactivationThreshold udtTemp = adminUDTMap.get(udt.getRoleName()); if(udt.getThresholdValue() < udtTemp.getThresholdValue()){ adminUDTMap.put(udt.getRoleName(), udt); } } ,即使进行类型转换也是如此。