我理解在Javascript中的所有语句之后使用分号是很好的语法,但是有没有人知道为什么if / else语句在大括号后不需要它们?
答案 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)
因为花括号本身就是终止字符。
包含复合语句块并且本质上终止的标记。这就像在一个句子的末尾放一个句点,它向解析器发出信号,表明思想已经完成。
虽然完全是丑陋的,但在{}中包含每个语句并省略;
是有效的