2012-05-14 39 views
1

如何在javascript中调用没有的函数;为什么在没有分号的JavaScript仍然有效?

例如

可以说TestMethod的某处宣布....

testMethod(); 

testMethod() // without semicolon will still work. 

还呼吁元素中的一个方法 例如

<input type="button" onclick="testMethod();" /> 
<input type="button" onclick="testMethod()" /> // again no semicolon. 
+0

半冒号需要分开的语句。由于你的onclick中只有一个声明,所以有一个隐含的/不可见的;在那里''''和'''之间 –

+0

如何在

1

由于JavaScript引擎在一行的末尾的地方,如果它认为他们应该已经有分号。这往往介绍的错误,而不是避免他们:

return 
{ 
    user: 'foo' 
} 

return语句以上的回报...什么都没有:

return; 
{ 
    user: 'foo' 
} 
+2

“很少”会比“经常”更准确 - 如果经常发生,没有人会认为ASI能够可靠工作。 – Chuck

+0

只是我的.02,但我同意。我刚刚发现有2行代码是因为意外而留下了分号,并且很好奇*为什么它仍然没有任何问题。 –

1

JavaScript解释器将添加分号为您服务。省略分号是一个非常糟糕的想法,因为它会导致解释的JavaScript行为与您期望的行为有所不同,因为这样做。

见断裂实例上wikipedia

return 
a + b; 

// Returns undefined. Treated as: 
// return; 
// a + b; 

相关:

Do you recommend using semicolons after every statement in JavaScript?

+3

您的示例中的问题与省略分号无关。 –

相关问题