为什么在if / else语句之后没有使用分号?

时间:2013-06-11 03:39:16

标签: javascript if-statement

我理解在Javascript中的所有语句之后使用分号是很好的语法,但是有没有人知道为什么if / else语句在大括号后不需要它们?

3 个答案:

答案 0 :(得分:46)

  • 分号用于结束一条陈述
  • {}开始并关闭一组陈述

基本上,if-else后面必须跟一个语句或一组语句。

if-else后跟声明:

if (condition) statement;
if (condition); // followed by a statement (an empty statement)

if-else后跟一组陈述:

if (condition) {
   statement;
   statement;
}

if (condition) {
   // followed by a group of statements of zero length
}

if-else如果后跟单个语句,则必须以;结尾。当if-else后跟一组语句时,;不会以;结尾,因为{{1}}用于结束单个语句,并且不用于结束一组语句。

答案 1 :(得分:11)

真正的答案是因为许多现代语言都从C语言中复制了它们的语法,C语言具有此属性。 JavaScript是这些语言之一。

C允许语句块

 { ... }
在可以使用语句的地方使用

(不需要终止分号)。因此,您可以使用语句块作为then-和else-子句,而不使用分号。

如果在then-或else子句中放置单个语句,则需要用分号终止它。再次,就像在C中一样,额外的JavaScript扭曲;在行的末尾是可选的,如果插入它不会导致语法错误。

答案 2 :(得分:5)

因为花括号本身就是终止字符。

包含复合语句块并且本质上终止的标记。这就像在一个句子的末尾放一个句点,它向解析器发出信号,表明思想已经完成。

虽然完全是丑陋的,但在{}中包含每个语句并省略;

是有效的