为什么添加分号有时会破坏if语句?

时间:2014-08-03 05:31:18

标签: javascript if-statement

为什么你不应该在每组花括号后添加分号?我认为这是JavaScript中的规则。例如,在这段代码片段中,由于在初始if语句之后使用分号,因此它不起作用,但是在else语句之后的分号是正常的。



function a() {
  if (var >= length) {
    count =
      var / length;
  };
  else {
    count = 0
  };




3 个答案:

答案 0 :(得分:2)

ifelse之间添加分号有效地将它们分成两个单独的块。

if块可以独立存在,但不能存在else块,因为else取决于if语句中的条件。

答案 1 :(得分:1)

因为整个表达式包含if块。在表达式完成后引入了分号(并且没有必要发布if花括号)。在if之后添加分号时,您将缩短整个表达式。

从某种意义上说,你是这样说的:

if (foo === bar) {
    //do something
} /** You: Ok stop doing stuff**/;
/**
    Javascript: Ok! I'm done
**/
else { // Javascript: Wait, what is this crap
    //nothing's gonna happen
}

答案 2 :(得分:1)

第一个}后面的分号创建一个空语句。好像你写的那样:

 alert('test');
 ;

这个额外的"空"语句将ifelse分开,因此else块变得毫无意义。