29
A
回答
44
typeof
關鍵字代表運營商在Javascript
編程。
爲typeof
運營商在specification正確的定義是:
typeof[(]expression[)] ;
這是利用typeof
作爲typeof(expression)
或typeof expression
背後的原因。
即將到來爲什麼它已被實現,因此可能會讓開發人員處理其代碼中的可見性級別。因此,可以使用typeof使用乾淨的條件語句:
if (typeof myVar === 'undefined')
// ...
;
或者說明使用()
的可讀性的原因更復雜的表達式:
var isTrue = (typeof (myVar = anotherVar) !== 'undefined') && (myVar === true));
編輯:
在某些情況下,對typeof
運算符使用括號可以使編寫的代碼更容易產生歧義。
以下面的表達式爲例,其中typeof
運算符在沒有括號的情況下使用。 typeof
會返回空字符串文字和數字之間的連接結果的類型,還是字符串文字的類型?
typeof "" + 42
綜觀上述的操作者和precedence of the operators typeof
and +
的定義,似乎以前的表達式是等效於:
typeof("") + 42 // Returns the string `string42`
在這種情況下,使用括號與typeof
將帶來更多的清晰度你試圖表達什麼:
typeof("" + 42) // Returns the string `string`
相關問題
- 1. 爲什麼括號需要
- 2. 爲什麼在這裏需要括號?
- 3. 爲什麼添加字典類的方法不需要括號?
- 4. 爲什麼我不需要括號for循環和if語句
- 5. 爲什麼使用typeof()創建弱引用不需要指針星號?
- 6. 爲什麼在Haskell中需要花括號爲'neg square 4.2'?
- 7. 爲什麼CoffeeScript在下列情況下需要括號?
- 8. Groovy:爲什麼我需要將escape方括號加倍?
- 9. 爲什麼我的函數需要括號?
- 10. 爲什麼需要兩個括號在c/C++中使用宏?
- 11. 爲什麼我們需要添加括號來評估JSON?
- 12. 爲什麼我需要在RegEx中使用雙曲括號?
- 13. 爲什麼在這個lambda函數週圍需要括號?
- 14. 爲什麼在元組中需要括號?
- 15. JavaScript即時函數調用 - 爲什麼函數需要括號?
- 16. 爲什麼我們需要圍繞宏塊的括號?
- 17. C++構造函數重載 - 爲什麼說我需要括號?
- 18. 爲什麼需要雙括號與std :: is_same
- 19. json文本需要用括號包裝。爲什麼?
- 20. 爲什麼函數組合需要括號?
- 21. 熊貓:爲什麼雙括號需要布爾索引
- 22. 爲什麼JavaScript的eval需要括號來評估JSON數據?
- 23. 爲什麼我的serialVersionUID後需要一個大括號?
- 24. 爲什麼紅寶石在這裏需要括號?
- 25. 爲什麼打印一個整數的__repr__需要括號?
- 26. 爲什麼有些變量需要引號而不需要引號
- 27. 爲什麼「typeof」與「typeof()」相同?
- 28. 爲什麼不需要document.getElementById?
- 29. 爲什麼我不需要
- 30. 爲什麼高優先級操作符的原子不需要圓括號?
這不是一個函數。 – 2013-04-05 21:22:49
要添加,它是一個類似於'+'或'-'的運算符https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Operators/typeof – 2013-04-05 21:23:25
因爲'typeof'是一個運算符,而不是一個函數。 – jmoerdyk 2013-04-05 21:23:30