我只知道使用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