ASI自动分号插入

ASI 即automatic semicolon insertion。自动分号插入。

需要用;来结束的
  • 空语句
  • 以 let 、 const 、import 、 export 开头的声明语句
  • 以 var 开头的变量声明语句
  • 表达式语句
  • debugger 语句
  • continue 语句
  • break 语句
  • return 语句
  • throw 语句
不需要用;结束的
  • 块语句
  • if语句
  • try语句

ECMA标准限制生产式
return 语句中是不允许在 return 关键字之后出现行结束符的

  • return
  • ++ / - -
  • continue
  • break
  • yield
  • 箭头函数(左侧不允许有行结束符)

后自增运算符或后自减运算符应与它的操作数处于同一行。
return 或 throw 语句中的表达式以及 yield 表达式中的赋值表达式应与 return 、throw 、yield 这些关键字处于同一行。
break 或 continue 语句中的标签名应与 break 或 continue 关键字处于同一行。
总字,ES2015 标准这一节就告诉你一件事:在限制生产式中别换行,换行就自动插入分号。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在大多数情况下,可以省略JavaScript语句的分号。然而,建议在编写JavaScript代码时始终使用分号,以避免出现一些可能会导致错误的问题。以下是一些情况下应该使用分号的示例: 1. 当一行代码以左括号({)、左方括号([)或反引号(`)开头时,需要在前一行结尾加上分号。 2. 当在同一行编写多条语句时,需要在每条语句的末尾添加分号。 3. 当使用return、throw、break、continue、yield等关键字时,需要在前一行的结尾处添加分号。 虽然在某些情况下可以省略分号,但为了代码的可读性和可维护性,强烈建议在JavaScript中使用分号。 ### 回答2: 原生JavaScript中,大多数情况下,后面的分号是可以省略的。这是因为JavaScript拥有自动分号插入(Automatic Semicolon Insertion,ASI)机制。 自动分号插入机制是指在语句结束时,如果没有分号,解析器会尝试自动在合适的位置插入分号。它基于一些规则,例如: 1. 如果行末包含可识别的分号、括号、方括号、函数、类等,则不会插入分号。 2. 如果行末是运算符、逗号、点号等,解析器会插入分号。 3. 如果换行符前是 return、yield、throw、continue、break、import、++、-- 等等,则解析器会插入分号。 由于自动分号插入机制的存在,有些情况下我们可以省略分号,例如: ```javascript var x = 5 // 没有分号也能正确解析 var y = 3; // 有分号,不影响解析 ``` 然而,有时候省略分号可能会导致错误的结果或不符合预期的行为。因此,建议在编写JavaScript代码时,尽量养成良好的编码习惯,为每个语句后面添加分号。这样可以避免一些潜在的问题,并使代码更加清晰易读。 总结起来,虽然原生JavaScript中后面的分号可以省略,但为了避免潜在的错误或不一致行为,建议在语句结束处始终添加分号

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值