Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么在if/else语句后不使用分号?_Javascript_If Statement - Fatal编程技术网

Javascript 为什么在if/else语句后不使用分号?

Javascript 为什么在if/else语句后不使用分号?,javascript,if-statement,Javascript,If Statement,我知道在Javascript中的所有语句之后使用分号是很好的语法,但是有人知道为什么if/else语句不需要在大括号之后使用分号吗?因为大括号本身就是终止字符 是包含复合语句块并在本质上终止的标记。这就像在一个句子的末尾加上句号,它向解析器发出信号,表示思想已经完成 虽然非常难看,但在{}中封装每个语句并省略 真正的答案是因为许多现代语言都是从C语言中复制语法的,C语言具有这种特性。JavaScript就是这些语言之一 C允许语句块 { ... } (不需要终止分号)在可以使用语句的地方使用

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

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

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


虽然非常难看,但在{}中封装每个语句并省略

真正的答案是因为许多现代语言都是从C语言中复制语法的,C语言具有这种特性。JavaScript就是这些语言之一

C允许语句块

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

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

  • 分号用于结束一条语句
  • {
    }
    开始和结束一组语句
基本上,
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
必须以
结尾如果后跟一条语句<代码>否则
不以
结尾后接一组语句,因为
用于结束一条语句,而不用于结束一组语句。

但您可以省略;通过在{}中包装,肯定不会通过js lint
,而{}do
for(){}
也具有此属性。这是关于语言语法的。你知道那是什么,寻找“语句”。这是一个关于语言语法的问题;读者:如果你认为这本书不应该被关闭,那就点击“重新打开”。我不同意“即使以其他方式结束;”。javascript中的任何语句都不需要以结尾;仅供参考。没有严格的规则。任何不以上下文结尾的语句(如用大括号)都需要@Orangepill JavaScript没有那么严格的规则,但还是推荐使用它。我不知道“分号插入”(甚至不知道它的存在),但我发现,我们记住额外的规则只是每五到十行省略一个分号有点愚蠢。或者也许使用它有我不知道的好处。@Invisial我完全同意。我认为这是一种在早期原谅非程序员的方法,但相反,它往往只是通过让程序运行来掩盖错误,否则会出错。