javascript为什么isNaN(new Date())为false

kuba0506

嗨,我正在为这个简单的代码寻找一个好的解释

为什么isNaN(new Date(some date))false(typeof返回对象)

这是一个对象,据我所知isNaN函数显式转换为数字,因此如果我将不同的对象传递给isNaN,它将返回true。

尖尖的

要做的第一件事isNaN()是将其参数转换为数字(如您自己所写)。如果参数是一个对象,则可以通过调用.valueOf()该对象方法来完成。在Date实例返回时间戳的情况下,它将不包含NaN任何有效的Date。

尝试这个:

alert(isNaN({ valueOf: function() { return 12; } }));

对于无效的日期:

alert(isNaN(new Date("potatoes")));

会的true如果您想更严格isNaN,可以使用Number.isNaN

alert(Number.isNaN(NaN)); // true

isNaNNumber构造函数上的版本不会将其参数强制转换为数字。要做的是说您传递的东西是否是NaN值,而没有任何类型转换。因此,通过该功能,只有一个NaN

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Javascript - 为什么 isNaN(1 + null) 返回 false?

为什么在JS中,isNaN(null)== false?

为什么在Javascript中,(!+ [] + [])为'true'和(false + [])为'false'?

为什么JavaScript JSON评估为false?

为什么isNaN(“”)(带空格的字符串)等于false?

为什么(“ foo” === new String(“ foo”))在JavaScript中评估为false?

为什么Number.isNaN('abc')的结果为假?

为什么(new Date()== new Date())为假,而(Date()== Date())为真?

为什么{} == false评估为false,而[] == false评估为true?

为什么$ .isnumeric为false

为什么“ true” == true在JavaScript中显示为false?

为什么JavaScript负数不总是为true或false?

为什么“ False is False is False”评估为“ True”?

为什么“ False is False is False”评估为“ True”?

为什么“ True == False is False”评估为False?

角度-为什么Number.isNaN对于非空字符串返回false?

为什么std :: isnan()对于具有NAN值的双变量返回false

为什么isDrawerVisible总是显示为false

为什么“ []是[]”在python中评估为False

为什么`1> undefined`评估为false?

为什么$ false -eq“”为true?

为什么将if条件设置为!false?

为什么输出为0(= false)?

为什么在Python中'[] == False'的答案为False?

为什么 (true || false && false) 评估为 true?

为什么print('a'>'b')为false,而print('a'>'A')为True?

为什么hasNext()为False,而hasNextLine()为True?

为什么'0为假,但'False为真?

为什么date.valueOf()== date会导致false?