有人可以解释一下javaScript中的"空"语句和普通分号有什么区别吗



有人能解释一下普通分号之间的区别吗,位于每个语句和空语句之后javaScript

console.log(1) ;/* semicolon */ console.log(2)

以及有时作为if、for、while、do while语句体出现在javaScript中的空语句,例如:

if (true)
; /* empty statement */

两者之间有区别吗分号和一个空语句

每个javascript语句都应该(尽管不是所有语句都必须(以分号结尾,"empty statement"。空语句中的分号只是完成语句的分号。

最后的解释是:"空语句"是一个没有任何符号的语句,因此得名。它必须包含一个终止分号,否则JS解析器将无法将其与其他空白字符区分开来。因此,分号符号;它不是一个语句,而是一个以空语句结尾的强制分号。

在JavaScript中,分号表示语句的结束。如果语句是在自己的行上写的,则不需要在语句后面加分号,尽管这样做被认为是一种很好的做法。但是,如果一行上需要多个语句,则必须用分号分隔。

//these are ok
console.log(1)
console.log(2);
//this won't run
console.log(1) console.log(2) console.log(3)
//this will run
console.log(1); console.log(2); console.log(3);

空语句用于在JavaScript语法需要的情况下不提供任何语句。例如在For循环中:

for (let i = 0; i < 10; array[i++] = 0)
; //JavaScript requires a statement here so do nothing

此外,一些JavaScript语句必须以分号结尾,因此会受到自动分号插入(ASI(的影响。如果你想更深入地了解这一点,我建议你在MDN上查看这份文档和这个。为了更好地理解,您可以查看ECMAScript标准。

最新更新