JS中的这段代码给了我一个弹出窗口,说“我认为null是一个数字”,这让我感到有些不安。我想念什么?
if (isNaN(null)) {
alert("null is not a number");
} else {
alert("i think null is a number");
}
我正在使用Firefox3。那是浏览器错误吗?
其他测试:
console.log(null == NaN); // false
console.log(isNaN("text")); // true
console.log(NaN == "text"); // false
因此,问题似乎不是与NaN的精确比较?
编辑:现在问题已经回答,我已经整理了帖子以为存档提供更好的版本。但是,这会引起一些评论甚至答案有些难以理解。不要怪他们的作者。我更改的内容包括:
- 删除了一条说明,说我最初是通过恢复其含义来弄乱标题的
- 较早的答案表明,我还没有足够清楚地说明为什么我认为该行为很怪异,因此我添加了检查字符串并进行手动比较的示例。