我只知道使用isNaN来测试一个值是否等于NaN。它真的可靠吗?如何可靠地测试一个值是否等于NaN?
回答
NaN属性表示“不是数字”的值。这个特殊的值是由于一个操作数是非数字的(例如“abc”/ 4)或者因为操作的结果是非数字的(例如,尝试分割由零)。
虽然这看起来很简单,但NaN的一些有些令人惊讶的特征可能会导致毛病,如果一个人不知道它们。
一方面,尽管为NaN表示“不是一个数字”,它的类型,无论你相信与否,编号:
console.log(typeof NaN === "number"); // logs "true"
此外,NaN的比什么 - 甚至本身! - 是假的:
console.log(NaN === NaN); // logs "false"
一个半可靠的方法来测试一个数是否等于楠与内置函数isNaN(), 但即使使用isNaN() is an imperfect solution.
更好的解决方案无论是要使用value!==值,只有当值等于NaN时才会生成true。另外,ES6提供了一个新的Number.isNaN()函数,它与旧的全局isNaN()函数不同,也更加可靠。
'typeof value ===“number”&& isNaN(value)''? – Tomalak 2014-12-06 09:27:20
这也是一个很好的解决方案。 – user2466202 2014-12-06 09:31:18
- 1. 如何测试变量是否等于两个值之一?
- 2. 测试一个向量的任何元素是否等于1
- 3. 可靠地测试服务器是否gzip内容
- 4. 如何测试一个字符串类型是否等于另一个javascript
- 5. 测试颜色是否等于
- 6. 测试是否collections.Mapping等于其他地图,或字典
- 7. 是否有一个Node.js等价于JGroups来提供可靠的多播?
- 8. 如何测试日期对象是否等于特定日期
- 9. 如何测试Oracle中的列是否等于empty_clob()?
- 10. 如何检查是否kwarg等于一个特定值
- 11. 如何可靠地检测Flash是否是服务请求的发起者?
- 12. php检查可变长度是否等于一个值
- 13. 我如何测试NaN?
- 14. 测试两个对象是否相等
- 15. 如何可靠地测试Makefile中的Snow Leopard?
- 16. 如何测试8个字段中只有1个是否等于1
- 17. 测试如果输入等于可变
- 18. 如何测试数组中是否重复一个值?
- 19. 可能测试一个变量是否仅包含特定值?
- 20. 我该如何测试一个bean属性是否可写?
- 21. 检查int值是否等于几个值中的一个
- 22. 如何测试一个Elixir(或erlang)值是否可以写成二进制
- 23. 测试两个变量是否等于一个变量在PHP的if语句
- 24. 在Django表单清理函数中,如何可靠地测试是否填充了可选字段?
- 25. java.net.Socket.setSoTimeout是否可靠?
- 26. window.opener是否可靠?
- 27. 如何检查常数的值是否等于某个值?
- 28. NUnit TestContext.CurrentContext是否可安全地用于并行测试?
- 29. 如何在xunit.net中测试两个对象是否相等?
- 30. 如何测试python中两个对象是否相等?
为什么不呢? – GolezTrol 2014-12-06 09:18:37
see here:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isNaN – 2014-12-06 09:21:45