Tag: 分号

自动分号插入和返回语句

正如你可能知道的那样,ECMAscript试图变得聪明,如果你没有明确地写入分号 ,它会自动插入分号 。 简单的例子 function foo() { var bar = 5 return bar } 仍然按预期工作。 但是,如果你依赖于这一点,有一些警告。 如果我们重新写这样的function function foo() { var bar = 5 return { bar: bar } } ..这个函数现在会返回undefined因为解释器会在return语句后面插入这个分号(这就是为什么你总是应该在同一行作为一个语句带上大括号的原因)。 但是,知道所有这一切,我想知道现在在不同的浏览器和版本中,像下面这样的return语句是多么的安全 function foo() { var a = true, b = true, c = false; return a && b && c; } 我只是在生产环境中写了一个类似的return statement 。 […]

分号在“if”语句结尾

今天,在search一个bug的半小时后,我发现可以在if语句后面加一个分号而不是代码,如下所示: if(a == b); // Do stuff 这基本上意味着这些东西将会被完成,无论是否等于b,if语句都没有任何意义。 为什么Java不给我一个错误? 有没有什么情况会有用?

JavaScript库中的主要分号是什么?

在几个JavaScript库中,我从一开始就看到了这个符号: /** * Library XYZ */ ;(function () { // … and so on 尽pipe我对“立即执行的函数”语法很满意 (function(){…})() 我想知道什么是领先的分号。 我能想出的是,这是一种保险。 也就是说,如果图书馆是embedded在其他错误的代码中,则作为“最后的声明在最后结束”这种速度颠簸。 它有没有其他的function?

JavaScript的自动分号插入(ASI)有哪些规则?

那么,首先我应该问问这是否依赖于浏览器。 我读过,如果find一个无效的标记,但代码段是有效的,直到该无效标记,分号前插入一个换行符插入。 然而,引用由分号插入引起的错误的常见例子是: return _a+b; ..这似乎不遵循这个规则,因为_a将是一个有效的标志。 另一方面,打破呼叫连锁按预期工作: $('#myButton') .click(function(){alert("Hello!")}); 有没有人有更深入的规则说明?