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

问题描述 投票:29回答:3

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

javascript if-statement
3个回答
47
投票
  • 分号用于结束一个语句
  • {}开始并结束一系列声明

基本上,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后面跟着一组语句时,;不会以;结尾,因为 { ... } 用于结束单个语句,并且不用于结束一组语句。


11
投票

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

C允许语句块

qazxswpoi

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

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


5
投票

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.