回答
不,沒有真正的區別。這對大多數有經驗的編碼人員來說可能是顯而易見的,但我做了一個jsperf來證明它:http://jsperf.com/tetetetee
你看不到任何可重現的差異。如果存在差異,無論如何,它將會非常小,以至於你無法可靠地測量它。
使用第一種形式的原因只是它的編寫時間較短,而對於有經驗的JavaScript編碼人員而言,讀取時間可能會縮短一些。在某些情況下,它可能有助於使代碼更加簡潔或對稱。我個人並不不喜歡第一種形式,但我不會推薦它,因爲它會使大多數人難以閱讀代碼。
我懷疑這兩個代碼片段在性能上有什麼不同。有些人只是喜歡用更緊湊的方式進行編碼。我個人認爲第一個例子非常神祕,即使作者在六個月後重新閱讀代碼時可能需要停下來弄清楚發生了什麼。
「主管程序員完全意識到自己的頭骨有限的大小,因此他完全謙卑地接近他的任務,並避免像鼠疫這樣的聰明技巧。」 — Edsger W. Dijkstra
我不認爲2個片段之間有任何區別,第二個片段與第一個片段相比更具可讀性。
兩者完全一樣。單行版本是壓縮/縮小器應該/應該在內部執行的操作,而用戶明確執行該操作。在我看來不太可讀。
總之:沒有功能差異,評估方式也沒有差異。它被評估的方式如下:
obj = {}
新對象在內存中創建和參考被存儲到一個稱爲obj
變量。
都在該作業的周圍放置括號((obj = {})...
),只調用第二個示例中的實例(obj...
)直接引用內存中的同一對象。唯一的區別是第二個代碼示例寫在一個新行上。
從那裏的代碼是完全一樣的:[key] = val
,將存儲在key
變量中的屬性設置爲在val
中設置的值。
這表明代碼的計算結果完全相同,這意味着性能不會有任何差異。
我能想到的第一個例子是爲什麼這樣做的兩個原因是爲了使代碼更加緊湊以減小文件大小,或者僅僅是某人的個人偏好。
- 1. 這是一個優化嗎?
- 2. 這個JavaScript優化與否?
- 3. 這是一個gcc優化錯誤嗎?
- 4. 這是一個優化錯誤嗎?
- 5. 如何優化這個javascript代碼?
- 6. 優化這段JavaScript代碼
- 7. 優化這個SQL!
- 8. Matlab:優化這個?
- 9. mongodb批量插入的微優化?或者這是一個重要的優化?
- 10. 這是NP優化嗎?
- 11. 這是否得到優化?
- 12. 是否可以將這2個select語句優化爲一個?
- 13. 如何優化這個TSQL
- 14. 優化這個查詢
- 15. 優化這個方法C#
- 16. 如何優化這個C++?
- 17. 優化這個Python代碼
- 18. 有優化這個查詢
- 19. 優化這個腳本
- 20. MSDN例子:這是一個錯誤或優化(X509Certificate2類)
- 21. LLVM編譯器 - 這是一個優化錯誤嗎?
- 22. Mysql-這是一個很好的優化查詢嗎?
- 23. 這是一個有效的編譯器優化?
- 24. 這不是一個文本文件(zend優化器)
- 25. 這是否優化總是工作
- 26. 這是一個專業化?
- 27. 如何簡化/優化這個jQuery
- 28. 這是一個JavaScript關閉?
- 29. Javascript優化
- 30. 優化Javascript
它只是更短。 –
它真的很重要嗎?或者是讓代碼更易讀,更易維護? –
更容易在一行中閱讀?我發現它恰恰相反。 – acdcjunior