2012-08-23 37 views
1

我一直在尋找一段時間來理解使用'嚴格使用'的好處,但是直到IE10出現它仍然在辯論中,但放在一邊,我真的想了解瀏覽器如何解釋'嚴格使用'的規定。我說解釋的理由是想了解在運行時會不會很慢。'use strict'vs jlint&other

如果它被用作早期捕獲機制來提高代碼性能,爲什麼我們需要在js文件中聲明它。爲什麼不使用jlint &其他外部工具來幫助修復代碼,提高性能的錯誤&。就像我們在eclipse中使用findbugs &其他工具來修復java相關爲什麼不爲JS。更大的問題是瀏覽器或者在看到嚴格的單詞時變得過於謹慎,那麼最好使用jslint等外部工具。我沒有參考下面的鏈接在'sunspider'網站給出的例子,但不確定它是例外還是真的瀏覽器執行沒有改變看到嚴格的字&,所以它的性能不會退化。

Is strict mode more performant?

+0

嚴格模式*提高*性能;實際上這是它存在的主要原因。沒有理由不在代碼中使用「嚴格使用」。 – Pointy

+0

在**運行時間比較之前和之後都可以完成任何一項**,以瞭解瀏覽器如何執行。我的猜測是,當瀏覽器讀取「嚴格使用」時,瀏覽器可能執行不同或更嚴格的解釋。這就是我想突出使用外部工具,它做類似的事情,以提高性能,錯誤和改善js代碼,以便不需要在每個js文件中使用硬編碼「嚴格使用」,並且最重要的是如果瀏覽器具有**將額外週期在循環方面解釋代碼並降低性能**(不是關於開發人員的痛苦和瀏覽器立場的最佳實踐) – user593029

+0

JavaScript運行時解析代碼所做的工作在頁面性能方面幾乎是微不足道的因素,嚴格模式與否。一旦代碼被解析,那絕對沒關係。擔心這樣的事情是毫無意義的。如果你有性能問題,看看是否刪除'「使用嚴格的」;「幫助(不會),但在那之前,這是一個沒有問題。 – Pointy

回答

1

沒有理由不能使用"use strict"的JSLint/jsHint一起檢查你的代碼的質量。區別在於,嚴格模式使用已建立的JavaScript/ECMAScript 5標準社區已經達成一致,當代碼質量工具(如jsLint)更加自以爲是時(ahem Douglas Crockford)。這裏是一個後由John Resig的描述嚴格模式:

John Resig on Strict Mode

如果您有興趣瞭解的表現,我創建了一個jsPerf test,測試我的jQuery插件,Tocify,與不嚴格的模式。表現完全一樣。

+0

我明白我們可以同時使用,但在運行時它會影響瀏覽器的性能或不是這是我想要的。我閱讀並研究了他們所做的大多數論壇,建議最好使用「嚴格使用」但使用jslint,如果我們可以實現相同的理由,首先在「use lint」中聲明**當瀏覽器看起來爲「use strict」它會以任何方式影響瀏覽器的性能,這是真正的問題**如果瀏覽器對java代碼的解釋變得更加嚴格並且性能下降,那麼依賴外部工具就更好了。在完成嚴格的選項之前和之後完成任何操作。 – user593029

+0

剛剛添加了一個示例jsPerf測試。 –