我知道在Javascript中的所有语句之后使用分号是很好的语法,但有没有人知道为什么if / else语句在花括号之后不需要它们?
{
和}
开始并结束一系列声明基本上,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
后面跟着一组语句时,;
不会以;
结尾,因为 { ... }
用于结束单个语句,并且不用于结束一组语句。
真正的答案是因为许多现代语言都从C语言中复制了它们的语法,C语言具有此属性。 JavaScript是这些语言之一。
C允许语句块
qazxswpoi
(不需要终止分号)可以在可以使用语句的地方使用。因此,您可以使用语句块作为then-和else-子句,而不使用分号。
如果在then-或else子句中放置一个语句,则需要用分号终止它。再次,就像在C中一样,额外的JavaScript扭曲;在行的末尾是可选的,如果插入它不会导致语法错误。
因为花括号本身就是终止字符。
这些标记包含一个复合语句块并且本质上是终止的。这就像在一个句子的末尾放一个句点,它向解析器发出信号,表明思想已经完成。
虽然完全是丑陋的,但在{}中包含每个语句并省略;