在Javascript中,有在线自动插入机制结束分号,可以容忍一些朋友忽略
输入分号。当然,你最好的形式进入分号的习惯,同时掌握Javascript
处理忽略输入分号的
情况,因为这方面的知识可以帮助你没有分号的理解代码。
Javascript
语言有一个机制:在解析时,它可以自动的句子
修改分号分隔句末失踪后,插入一个分号。然而,因为自动分号是一个Javascript语言,这是机制的冲突,所有的
空间都被忽略,所以
程序可以通过空间格式的代码。
这两种机制之间的冲突很容易掩盖了更严重的分析
错误。有时是不合时宜的插入一个分号。例如,自动插入分号在返回语句会造成这样的后果:如果想返回语句返回一个值,该值的表达式的开始部分必须返回相同的行,例如,
函数(){()
返回
{
现状:真
};
}
看起来它将返回一个包含状态成员元素的对象。不幸的是,Javascript会自动插入分号,让它返回到未定义的
位置,导致真正返回的对象被忽略。
当分号的自动插入导致程序被误解时,没有警告。如果把{在前一行的结尾,而不是下一行的头,你可以避免这个问题,例如:
函数(){()
返回{
现状:真
};
}
为了避免由分号引起错误,建议养成良好的习惯,无论是否行中的语句完成。只要加上完整的句子,分号必须添加表示句末。
为了方便阅读,当一个长句子需要在一个分支
显示,一行应确保一个完整的逻辑语义不在一条线上形成的。例如,下面的代码是一个
连续的赋值语句,可以看出通过分支的显示更清楚。这个分支显示Javascript不能把每一行作为一个
独立的句子,因为它不能形成一个独立的逻辑语义,所以不会产生歧义。
var a =
= B
c=4;
上述语句以如下方式显示:var a = b = C=4;
下列语句,很容易区分如果不能
正确显示。这句话的意思是定义一个变量i和分配给它。如果变量A是真的,赋值是1,否则它将决定变量B。如果B是真的,赋值值是2,否则它将决定变量C。如果C是真的,赋值是3,否则赋值是4…
var I=1:b 2:C 3:4;
下面的分支显示是错误的,因为表达式A 1:B可以形成独立的逻辑语义,所以Javascript会自动添加分号来表示一个独立的句子。
var I=1:b
2:C
3:4;
安全
方法应该显示如下,以便每一行不能形成独立的语义。
var i = 1
2:B
3:C
:4;
简而言之,在编写代码时,应该养成用分号结束句子的好习惯。所有的句子都要用分号隔开,分支所显示的句子应该保证单行不容易形成独立的逻辑逻辑语义。
PS:实例详解Javascript自动添加分号在终点
分号(;),通常用于一行的行尾,代码如下所示:
无功webname = ;
url =;
上面的代码在每个语句语句之后添加了一个分号,这不需要解释太多。
无功webname =
var url =
事实上,分号可以省略,但是分号的省略会在编译阶段自动添加分号。
看看代码的一个例子。
功能(webname){
返回
webname
}
console.log(做());
由于编译器在每行后面自动添加分号,所以输出值未定义,而不是。