JavaScript编程-可选的分号

本文探讨JavaScript中分号的使用规则,解释何时必须使用分号,何时可以省略,并讨论JavaScript解析器如何处理分号,以及特定情况下必须注意的细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

偷一下懒,直接用了《JavaScript权威指南》的小标题——可选的分号。

最近要参与公司项目,看了代码规范,又看了《JavaScript权威指南》,里面都有提到JavaScript编程过程中分号处理的问题。众所周知,JavaScript是可以不用分号结尾的,现在许多shell语言也都有类似的实现,其实是在解释代码的时候补加了分号。

之前有写过文章来记录js中必须要用分号的地方,不用分号会导致报错,但没有说为什么。这边又遇到了比较好的解释,所以记录一下。

看一下书中的描述在JavaScript中,如果语句各自独占一行,通常可以省略语句之间的分号(程序结尾或右花括号“}”之前的分号也可以省略)

这边有个条件语句各自独占一行,如果一行包括两个语句,则必须用分号隔开了


//类似这样,可以不加分号
a = 3
b = 4
//类似这样,必须有分号隔断
a = 3; b = 4

因为JavaScript解释时是在一行结束的时候才会判断是否需要补充分号,想来也是,如果每个字符的后面都要判断,那JavaScript也不用run了,运行时间会慢的让你抓狂。

现在我们知道JavaScript是在换行处补充分号的,但是,用书中的话来说并不是在所有换行处都补填分号:只有在缺少了分号就无法正常解析代码的时候,JavaScript才会填补分号,这条规则比较有意思,也就是说,JavaScript解析器很懒,能不补就不补,比如说:

var y = x + f
(a + b).toString()

作者写这段代码的意思可能是这样的:

var y = x + f;
(a + b).toString();

但是会被解释成这样:

var y = x + f(a + b).toString

JavaScript解析器很懒,但是也有例外,可能这几个是他比较中意的小姑娘,所以见了她们就要勤勤快快的,breakcontinuereturn++--,也就是说,这几个和后面(前面)的表达式之间不能换行,否则会被解释成两个语句。比如:

return
true

会被解释成

return;true

或者

x
++
y

会被解释成

x;++y;

所以不用分号的时候要注意呀

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值