在 C 语言中,分号是语句结束的标志,在语句结束的地方一定要以分号结束。而 JavaScript 的分号却是可选的,若语句都各占一行,则可以省略分号。这是因为 JavaScript 中的 ASI 机制,允许我们省略分号。

ASI 机制

先分享一个关于 ASI 机制的介绍,感觉这个博主写的很好。ASI 机制不是说在解析过程中解析器自动把分号添加到代码中,而是说解析器除了分号还会以换行为基础按一定的规则作为断句的依据,从而保证解析的正确性。

ECMAScript 标准定义的 ASI 包括 三条规则 和 两条例外。#三条规则是描述何时该自动插入分号:1.解析器从左往右解析代码(读入 token),当碰到一个不能构成合法语句的 token 时,它会在以下几种情况中在该 token 之前插入分号,此时这个不合群的 token 被称为 offending token :·如果这个 token 跟上一个 token 之间有至少一个换行。·如果这个 token 是 }。·如果 前一个 token 是 ),它会试图把前面的 token 理解成 do...while 语句并插入分号。2.当解析到文件末尾发现语法还是有问题,就会在文件末尾插入分号。3.当解析时碰到 restricted production 的语法(比如 return),并且在 restricted production 规定的 [no LineTerminator here] 的地方发现换行,那么换行的地方就会被插入分号。#两条例外表示,就算符合上述规则,如果分号会被解析成下面的样子,它也不能被自动插入:1.分号不能被解析成空语句。2.分号不能被解析成 for 语句头部的两个分号之一。

建议

虽然不加分号,代码看起来会更加的简洁,但是为了避免歧义,还是句末加上分号比较好。
当然,这个也是看个人习惯,项目一定要风格统一,养成良好的代码习惯。
还有ESLint,这个东西的使用在前期会非常蛋疼,但是用好后,对于保证代码风格的一致性有很好的帮助。

webstorm对于分号机制的设置

见图

此处可以设置项目中是否句末加分号。按Ctrl + alt + L 的时候非常方便。

JavaScript 中语句的分号及webstorm对其的设置相关推荐

  1. java任何表达式都可以当作语句_在Java语言中语句用分号终止,并不是所有的表达式都可以构成语句...

    在Java语言中,语句以分号":"作为结束标志.块语句由其他语句组成,其本身不需要用分号结尾.另外,内嵌有块语句并以块语句结尾的语句,也不需要用分号结尾. Java语句可分为空语句 ...

  2. JavaScript中语句与函数的执行辨析

    文章出自个人博客https://knightyun.github.io/2018/05/23/js-anonymous-function,转载请申明. Javascript代码中,语句和函数以及匿名函 ...

  3. 让我们讨论一下变量,以及为什么要在JavaScript中使用它们。

    by Zell Liew 由Zell Liew 让我们讨论一下变量,以及为什么要在JavaScript中使用它们. (Let's talk about variables - and why you ...

  4. JavaScript中清空数组

    如何在JavaScript中清空数组 方法一:将数组变量设置为大小为零的新数组 HTML代码: <button onclick="empty()">单击可清空 < ...

  5. javascript 分号_让我们谈谈JavaScript中的分号

    javascript 分号 要使用它们,还是不使用它们- (To use them, or not to use them-) Semicolons in JavaScript divide the ...

  6. JavaScript中的运算符和语句

    一.JavaScript的运算符 a.基本的算术运算符(+.-.*./.%) -.*./.%运算符会在必要的时候将操作数转换为数字,无法转换成数字的操作数将会转换成NaN,相应的运算结果也是NaN. ...

  7. 关于javascript中的(;),为可选的分号

    在阅读jQuery源码的时候,发现一个小东西神出鬼没,它就是(;).因此,为确保阅读的流畅性,从JQuery中跳出来,折腾一下javascript中的语句结束分隔符(注:这自是个人理解中的称呼),下面 ...

  8. html分号的作用,JavaScript 中的分号(;) – JavaScript 完全手册(2018版)

    注:本文为 < JavaScript 完全手册(2018版) >第14节,你可以查看该手册的完整目录. JavaScript 中的分号是可选的. 我个人偏好是我的代码中避免使用分号,但也有 ...

  9. JavaScript中的循环语句-while循环

    -JavaScript中有三种循环语句,分别为while循环,do-while循环和for循环. 现在来聊一聊while循环. 首先讲一讲 if 语句和while 循环的格式是非常相似的,但是它们都拥 ...

最新文章

  1. percona mysql5.7进程出现大量unauthenticated user解决记录
  2. qa session of management of technology
  3. 多层次报表的性能优化方案
  4. 第49讲:实战上手,Scrapy-Redis 分布式实现
  5. 计算机组成原理个人笔记(一)
  6. Flex请求Php端的奇怪现象
  7. SylixOS之OK6410开发板系统烧写
  8. Code3 将文件转换到byte数组中
  9. php中下载csv文件怎么打开,php – 下载csv文件
  10. daemon函数理解及参数使用——daemon后进程退出的原因
  11. Ajax实现图片上传并预览
  12. 机器学习实战-微额借款用户人品预测
  13. linux下安装nodejs的方式
  14. 阿里巴巴与微软、苹果、亚马逊的实力对比
  15. 浙江理工大学计算机科学技术研究生,浙江理工大学电子信息技术专业综合2021年考研初试自命题科目考试大纲...
  16. Axure9使用技巧(自用)
  17. 激光与普通光区别以及它的波段范围
  18. 正方教务隐藏入口_正方教务处抓包分析
  19. 太阳能电池基本特性实验报告_太阳能电池IV特性实验报告
  20. easyui修改以及datagrid dialog form控件使用

热门文章

  1. 便利贴--33{uniapp中提示音的处理,动态输出}
  2. 阿里大文娱进军中视频赛道,《出发吧,老孟》3月上线
  3. JavaScript时间戳的应用
  4. 树相关算法及Python实现
  5. 【批处理】findstr
  6. 【10.17 牛客普及(一)】 牛牛的密码 题解
  7. linux远程无法连接能ping通,能ping通服务器,但是不能ssh远程登录为什么?
  8. uniapp + vue 实现色弱测试小游戏
  9. 旷世轻量化网络ShuffulNetV2学习笔记
  10. linux在哪里分区,Linux安装分区详细图文教程