我知道在JavaScript中,Array
不支持+
操作,所以+[]
將轉換爲+ [].toString()
,但我不明白,爲什麼+""
等於零。爲什麼+ []或+「」等於0在javascript
回答
由於空字符串("")
是在JavaScript false
(如JavaScript是ECMAScript中的一種方言,和ECMAScript語言規範清楚地定義此行爲)和+
一元運算符轉換false
到0
。
參考:http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf
要添加的任何鏈接? – evolutionxbox
@evolutionxbox檢查現在.. – void
這不是因爲空字符串是錯誤*(我假設你的意思是「falsey」)*。還有其他有價值的值不會被轉換爲零。 –
- 1. 爲什麼thing [:] [0]等於thing [0] [:]?
- 2. 爲什麼string ='0'不嚴格等於javascript中的新String('0')
- 3. 爲什麼OBJ [-0]不等於OBJ - 在JavaScript
- 4. 爲什麼1 | 0,2 | 0在JavaScript中等於2?
- 5. 爲什麼0.1 * 10-1不等於0?
- 6. iOS - 什麼等價於「stretchableImageWithLeftCapWidth:0 topCapHeight:0」?
- 7. 爲什麼在JavaScript中0010等於8?
- 8. 爲什麼JavaScript中的0小於Number.MIN_VALUE?
- 9. 當使用指針時,爲什麼'\ 0'等於0?
- 10. 爲什麼JavaScript中的「0 === -0」爲true?
- 11. 爲什麼Array不等於數組(javascript)?
- 12. 什麼是或等於
- 13. 什麼是go的等價於argv [0]?
- 14. 爲什麼int exp1 = 14/20 * 100;在Java中等於'0'?
- 15. 爲什麼TARGET_OS_WATCH在「WatchKit Extention」目標中等於0?
- 16. NSUInteger小於0,爲什麼?
- 17. Rails驗證小於0或大於0,或字段不等於0
- 18. Javascript或者等於
- 19. 如果q等於什麼也不等於什麼Javascript不可用Javascript
- 20. C爲什麼3除以2等於0,而是1等於1?
- 21. 爲什麼在JavaScript中使用0 ==「」
- 22. 爲什麼{} + []在Javascript中返回0?
- 23. 爲什麼0 ==''在Javascript中是true?
- 24. 等於0時
- 25. For Loop。爲什麼它小於<不小於或等於<=?
- 26. 爲什麼!==「」不等於!== NULL
- 27. 爲什麼「1」等於「+1」?
- 28. 爲什麼_get_heap_handle等於GetProcessHeap?
- 29. 爲什麼'^ 9等於9?
- 30. 爲什麼_XBEGIN_STARTED等於-1?
我認爲這是一個一元運算符。 – evolutionxbox
它轉換爲零,因爲ECMAScript規範中有一個特定的規則,要求在執行數字轉換時以這種方式轉換空字符串。 –
ECMA規範中的序列很難遵循並複製到此處(特別參見https://tc39.github.io/ecma262/2016/#sec-tonumber),我們難道不能找到許多相同問題之一嗎? –