這是一個非常簡單的問題,但它可能對我們中的一些人非常有用。我一直在谷歌尋找答案,但我沒有找到它。我對瀏覽器如何讀取if/else語句有疑問。簡而言之,當條件爲false時,瀏覽器是否忽略了結果(即不讀取它)或瀏覽器首先讀取它,但它不執行代碼?當例如你有一個真實長的循環代碼時,差別是巨大的。謝謝!瀏覽器如何真正閱讀if/else語句?
回答
總之,它取決於用戶代理,更具體地說,它的JavaScript引擎。現代引擎非常聰明,可能會一起忽略它,特別是如果它可以推斷出該分支是死代碼並且永遠不會執行。即,這個代碼可以安全地忽略:
if (false) {
// Do a bunch of stuff
}
然而,即使它沒有,它很可能你會需要的代碼非常大量的在您的分支爲它實際上使在解析延遲的差異。有幾條線不足以保證任何速度問題。
一如既往的表現,然而,衡量真的是唯一重要的事情。人們會說什麼更快的事情,但沒有證據就沒有意義,所以如果你不確定哪個更快,那麼測量它!根據JavaScript引擎,您可能會得到非常不同的結果,因此無論如何,最好採取這種方式來詢問StackOverflow,即使這個是是一個非常聰明的社區。
查看jsperf可以很好地衡量不同用戶代理之間的差異。
謝謝!我會檢查出jsperf。此外,我的問題不切實際,而是理論上的。我有一個可以正常工作的requestAnimationFrame循環,但是我想知道我是否做得正確。只是。 – Angel
事情是,在談論表演時,理論上幾乎總是毫無用處,因爲你很可能最終錯了。在談論績效時,衡量是唯一重要的事情。在你衡量之前,你永遠不會知道。 –
- 1. 閱讀瀏覽器Cookie ... jQuery
- 2. SharedPreference ifelse語句
- 3. 嵌套ifelse語句
- 4. 拒絕ifElse語句
- 5. 誤差ifelse語句
- 6. 太多ifelse語句
- 7. Excel VBA Ifelse語句
- 8. Android閱讀瀏覽器歷史
- 9. 閱讀PDF瀏覽器的PhoneGap
- 10. 閱讀來自瀏覽器的網址
- 11. 閱讀javascript文件瀏覽器,儘管語法錯誤
- 12. 如何閱讀此高級return語句?
- 13. 如何閱讀這個JavaScript語句
- 14. 如何在dplyr中鏈接ifelse語句
- 15. PCSC閱讀器仿真器
- 16. 嵌套data.table語句的ifelse語句
- 17. 如何瀏覽仿真器的SDCard?
- 18. 如何在R中正確寫入這個ifelse語句
- 19. 如何閱讀Selenium WebDriver中的瀏覽器狀態欄文本
- 20. 如何閱讀已在瀏覽器中打開的源網站
- 21. 如何閱讀Android手機中的瀏覽器歷史記錄
- 22. HTML doctype,瀏覽器如何在閱讀doctype時執行
- 23. 如何閱讀非IE瀏覽器上的word文檔
- 24. 如何閱讀瀏覽器不支持的CSS屬性?
- 25. 如何知道瀏覽器是否真的完成了瀏覽
- 26. if語句的iMacros(瀏覽器?)
- 27. MySQL查詢瀏覽器多個語句
- 28. 與ifelse語句超限
- 29. ifelse語句與dplyr變異
- 30. R中的ifelse語句
它不是瀏覽器,而是它內部的Javascript解釋器,它解析Javascript的條件語句。現代的Javascript實現非常複雜(追蹤JIT技術等) –
如果您的循環代碼足夠長,以至於掃描它需要多長時間,則可能是錯誤的。 – FrankieTheKneeMan