我被告知使用多年的有意義的變量名稱。然而,每次我嘗試調試一些JavaScript代碼並深入到第三方框架時,我發現每個JavaScript框架都會有變量名稱,如a
,ac
,b
,c
。爲什麼大多數JavaScript框架使用如此短的變量名?
爲什麼這麼簡短的變量名稱通用?這似乎會損害可維護性。
我被告知使用多年的有意義的變量名稱。然而,每次我嘗試調試一些JavaScript代碼並深入到第三方框架時,我發現每個JavaScript框架都會有變量名稱,如a
,ac
,b
,c
。爲什麼大多數JavaScript框架使用如此短的變量名?
爲什麼這麼簡短的變量名稱通用?這似乎會損害可維護性。
它被稱爲縮小。它以所有語言完成,但主要是JavaScript,以從源代碼中刪除所有不必要的字符。它主要是JavaScript,因爲大型JavaScript文件可以變得更小,從而加快瀏覽器的加載速度。
大多數JavaScript庫都有一個可供開發人員使用的版本,可以進行調試,然後在生產中使用縮小版來減少傳輸開銷。
編寫代碼時,應該總是使用敏感變量,但只有開發人員才能閱讀它,瀏覽器並不在意。
你很可能看着縮小的JavaScript。這是通過minification tool傳遞原始(希望更具可讀性)源代碼的結果。
你所看到的可能是實際JavaScript的縮小版本。它的完成使得文件的大小因性能原因而減少。
一個很好的例子是jQuery庫,你可以看看development version和minified version
什麼你可能看到的是最小代碼。最小化器重寫Javascript以獲取最小空間量,因此它將盡快下載 - 刪除不必要的空白,用短名稱替換變量和函數,並使用其他一些技巧。
它可能是您正在調試的JavaScript被縮小。沒有辦法將縮小的JavaScript轉換爲原作,並使用作者寫的有意義的名稱。即使關鍵字不可讀,您也可以使用本能和分析技能來理解其他代碼。
正如其他人所說,這是縮小版本。我對這個主題的貢獻只是爲了展示一個例子。
藉此例如:
(function() {
"use strict";
var foo = function() {
return;
};
var bar = foo;
var baz = bar;
})();
並通過jscompress.com運行它。結果將是
(function(){"use strict";var e=function(){return};var t=e;var n=t})()
通過此工具運行您的JavaScript,看看會發生什麼:http://jscompress.com/ – Marty
爲什麼這會降低很多?儘管縮小是JavaScript開發人員的常識,但對其他人來說卻不是這樣。 – Mics