請問瀏覽器上執行,從來沒有被調用JavaScript函數?JavaScript函數執行
做這些功能做任何傷害除了增加文件的大小?
function test() {
// 1000 lines of code (not commented out)
}
請問瀏覽器上執行,從來沒有被調用JavaScript函數?JavaScript函數執行
做這些功能做任何傷害除了增加文件的大小?
function test() {
// 1000 lines of code (not commented out)
}
只要test()
永遠不會被調用,代碼永遠不會執行。它可能會被編譯。
它可能解析代碼,但像任何其他的功能,它不會,除非調用執行:
test(); // or any of the many other ways to call a function in JavaScript
無論瀏覽器解析它很可能是依賴於實現的。
瀏覽器將不執行任何代碼,除非它無論是在代碼或動態腳本的運行過程中明確提到。
例
function func()
{
alert('hello');
}
window.addEventListener('load',func,false);
// With this line it will be called on load.
什麼是_dead code_ ??你是在談論註釋掉的代碼或是** NOT **被調用的代碼?無論答案如何,你爲什麼要保持?根據[維基百科的定義(http://en.wikipedia.org/wiki/Dead_code),死代碼是** ** DEFINITELY執行。這是你死的代碼是什麼意思? – jahroy 2013-03-11 20:20:35
這取決於瀏覽器。 Chrome爲JavaScript提供了一個非常好的JIT,並且可能會進行一些優化,比如跳過編譯代碼寫入的死代碼。但是,您的用戶仍然需要下載所有的代碼,不管它是否在事後執行。 – 2013-03-11 20:23:27
您應該編輯您的問題以定義_dead code_的含義。根據[維基百科的定義(http://en.wikipedia.org/wiki/Dead_code)_dead code_肯定是執行,它肯定有負面的副作用......但我不是你什麼感覺談論。 – jahroy 2013-03-11 20:30:06