回答
在JavaScript中,運算符「typeof」的優先級爲4,而運算符大於「>」的優先級爲8,因此根據問題類型3中提到的示例,先評估,然後與2進行比較返回false。
更多詳細信息,可在運營商的優先級和結合中找到:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Operator_Precedence
爲了解釋這是怎麼回事,解釋將其視爲:
(typeof 3) > 2
的typeof運算操作總是返回一個字符串和3
是一個號碼,以便表達解析爲:
'number' > 2
Greater-than Operator (>)應用Abstract Relational Comparison Algorithm以獲得比較結果。由於'數字'是一個字符串,因此使用內部ToNumber操作將其轉換爲數字(步驟3a)。這不包含一些文字(如「3」)結果爲NaN(參見下面的註釋),字符串所以現在表達的是:
NaN > 2
步驟3c說,如果左手錶達NaN,返回undefined(即特殊的undefined value,不是字符串'undefined')。
所以不確定返回,並的第6步大於運營商算法說:
如果[結果]是不確定的,返回false。否則,返回[結果]。
因此最終,表達式返回false。
注:只含有空格的(一個或多個空格,製表符,換行符,等等)的字符串轉換爲數字0
,這是唯一的情況下一個字符串,它不是一個數字文本轉換爲除NaN以外的數值。見ToNumber Applied to the String Type。
」undefined如何轉換爲false?很有意思! – mzeshle 2014-11-24 01:25:50
- 1. 爲什麼`typeof false || undefined`返回「布爾」
- 2. 爲什麼instanceof在JavaScript中返回false?
- 3. 爲什麼javascript typeof總是返回「object」
- 4. 爲什麼JavaScript window.open('url')在firefox js控制檯中返回null?
- 5. 當在隊列中使用Contains時,控制檯返回False。爲什麼?
- 6. 爲什麼不2 == 4返回false?
- 7. JavaScript AddEventListener在控制檯中返回null
- 8. Javascript - 爲什麼NaN(1 + null)返回false?
- 9. 爲什麼控制檯顯示typeof作爲數組的對象?
- 10. 爲什麼這會在控制檯中返回一個地址?
- 11. 爲什麼Active Record關係不在控制檯中返回?
- 12. 爲什麼在控制檯中初始化變量返回undefined?
- 13. 爲什麼String.matches在Java中返回false?
- 14. 爲什麼string.contains()返回false?
- 15. jquery返回false - 爲什麼?
- 16. 爲什麼setFieldProperty返回false?
- 17. Properties.containsKey返回false,爲什麼?
- 18. 爲什麼File.Exists返回false?
- 19. 爲什麼System.Type.IsPublic返回false?
- 20. 爲什麼!document.body返回False?
- 21. 爲什麼strtotime返回false?
- 22. ABGroupAddMember返回false。爲什麼?
- 23. 爲什麼QSortFilterProxyModel.setData()返回false?
- 24. 爲什麼getimagesize()返回false?
- 25. 爲什麼$ .contains()返回false?
- 26. 爲什麼transaction.wasCommitted()返回false?
- 27. 爲什麼os.path.isfile返回False?
- 28. 爲什麼List.contain返回false
- 29. 爲什麼IsUTF8String返回false?
- 30. 爲什麼is_array()返回false?
你期望它做什麼? – SLaks 2014-11-24 00:12:26
找不到解釋?請把這個問題放在你的帖子的正文中,標題應該表明你正在詢問的主題。 – RobG 2014-11-24 00:55:12