2013-03-11 153 views
-3

请问浏览器上执行,从来没有被调用JavaScript函数?JavaScript函数执行

做这些功能做任何伤害除了增加文件的大小?

function test() { 

    // 1000 lines of code (not commented out) 

} 
+6

什么是_dead code_ ??你是在谈论注释掉的代码或是** NOT **被调用的代码?无论答案如何,你为什么要保持?根据[维基百科的定义(http://en.wikipedia.org/wiki/Dead_code),死代码是** ** DEFINITELY执行。这是你死的代码是什么意思? – jahroy 2013-03-11 20:20:35

+2

这取决于浏览器。 Chrome为JavaScript提供了一个非常好的JIT,并且可能会进行一些优化,比如跳过编译代码写入的死代码。但是,您的用户仍然需要下载所有的代码,不管它是否在事后执行。 – 2013-03-11 20:23:27

+0

您应该编辑您的问题以定义_dead code_的含义。根据[维基百科的定义(http://en.wikipedia.org/wiki/Dead_code)_dead code_肯定是执行,它肯定有负面的副作用......但我不是你什么感觉谈论。 – jahroy 2013-03-11 20:30:06

回答

2

只要test()永远不会被调用,代码永远不会执行。它可能会被编译。

1

它可能解析代码,但像任何其他的功能,它不会,除非调用执行:

test(); // or any of the many other ways to call a function in JavaScript 

无论浏览器解析它很可能是依赖于实现的。

+0

_“它可能”_取决于? – gdoron 2013-03-11 20:22:06

+0

@gdoron上下文。例如,如果此函数位于另一个未曾到达的代码块中,则它可能永远不会被解析。 – 2013-03-11 20:23:08

+0

@MattBall它会一直被解析。我想你的意思是编译。 – zeroflagL 2013-03-11 21:05:03

0

浏览器将不执行任何代码,除非它无论是在代码或动态脚本的运行过程中明确提到。

function func() 
{ 
    alert('hello'); 
} 

window.addEventListener('load',func,false); 
// With this line it will be called on load.