1.前言

  由于Javascript有自动识别一句语句的结尾,但是缺少必要分号作为结尾符,会降低代码的可读性和整洁性。通过javascript权威指南By淘宝前端团队译,这分号还算比较好玩的。

2.样例

2.1 两句语句有两行的书写

a = 3; //第一行的分号可以省略
b = 4;

2.2 两句语句一行的书写

a = 3; b = 4; //第一个分号不能省略,否则提示Uncaught SyntaxError: Unexpected identifier

2.3 容易引起误解的写法

2.3.1

var a
a
=
3
console.log(a) 

等价于 var a; a = 3;console.log(a);

2.3.2

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

等价于var y =  x + f(a+b).toString(0;

2.4 通常来讲,如果一条语句以'(','[','/','+','-' 开始的,那么它可能会和前一条语句合在一起解析,后三种不常见,但是前两者比较常见,所以可以保守地在语句前面多加一个分号。

var x = 0
;[x,x+1].forEach(console.log);

2.5 方法结束加不加分号都可以,安装java,C/C++的习惯是不加。

function fun{} //};也是可以的。

2.6 如果前语句和下一行语句无法合并解析,JS则会在第一行后填补分号,这是通常规则,But有两个例外

2.6.1 第一个例外是涉及到return、break和continue语句

return
true;

会被解析成return; true; 而代码的本意是return true;

2.6.2 涉及“++”和“--”

x
++
y

等价于x; ++y; 而不是x++; y

 3. 总结

尽量写规范一些,防止编译器理解错你的表达。

转载于:https://www.cnblogs.com/fanbi/p/7201508.html

[学习笔记]Javascript可选的分号相关推荐

  1. HTML5学习笔记 —— JavaScript基础知识

    HTML5学习笔记 -- JavaScript基础知识 标签: html5javascriptweb前端 2017-05-11 21:51 883人阅读 评论(0) 收藏 举报 分类: JavaScr ...

  2. 学习笔记 JavaScript 动画

    学习笔记 JavaScript 动画 结果 代码里用到的图片 <html><head><style>#imageDiv {height: 100px;width: ...

  3. 学习笔记 JavaScript 动画 加速

    学习笔记 JavaScript 动画 加速 效果 代码中用到的图片 <html><head><style>#imageDiv {position: absolute ...

  4. 前端学习笔记——JavaScript进阶

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.JavaScript 面向对象 1. 面向对象编程介绍 1.1 两大编程思想 1.2 面向过程编程 1.3 面向对 ...

  5. 重学前端-学习笔记-JavaScript对象

    说明 重学前端是程劭非(winter)在极客时间开的一个专栏,在此主要整理我的学习笔记.如有侵权,请联系我,谢谢. javascript对象特征 对象具有唯一标识性:完全相同的两个对象,也不是同一个对 ...

  6. 《JavaScript权威指南第六版》学习笔记-JavaScript概述

    第一章.JavaScript概述 JavaScript是一门高端的.动态的.弱类型的编程语言,非常适合面向对象和函数式的编程风格.JavaScript的语法源自Java,它的一等函数(first-cl ...

  7. js学习笔记----JavaScript中DOM扩展的那些事

    什么都不说,先上总结的图~ Selectors API(选择符API) querySelector()方法 接收一个css选择符,返回与该模式匹配的第一个元素,如果没有找到匹配的元素,返回null. ...

  8. Web前端学习笔记——JavaScript之WEBAPI、BOM、DOM及获取页面元素

    Web API介绍 API的概念 API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访 ...

  9. Web前端学习笔记——JavaScript之数组、函数、作用域

    数组 为什么要学习数组 之前学习的数据类型,只能存储一个值(比如:Number/String.我们想存储班级中所有学生的姓名,此时该如何存储? 数组的概念 所谓数组,就是将多个元素(通常是同一类型)按 ...

最新文章

  1. asp.net mysql 创建变_[ASP.net教程]EF Core使用CodeFirst在MySql中创建新数据库以及已有的Mysql数据库如何使用DB First生成域模型...
  2. 怎样去掉 CSDN-Markdown 上传图片中的水印
  3. NFS配置全新设置常用参数说明
  4. ip代理服务器软件25探索云速捷_IP代理在实际使用过程中会面临的问题,如何准确挑选和使用代理IP...
  5. Java学习笔记——面向对象
  6. 软件测试——语句覆盖
  7. 如何用python的i2c教程_Micropython TPYBoard I2C的用法
  8. python软件-python 2.7官方版
  9. java web 学习计划
  10. java系统源代码_JAVA学生管理系统源代码
  11. 怎么恢复佳能相机SD卡CF卡误删除格式化的MOV视频
  12. git用户名和密码保存文件_GitHub 本地保存用户名和密码方法
  13. iOS:error: unable to read input file
  14. 惠州电子计算机职业学校,惠州市十大中专学校排名
  15. android实现多任务多线程支持断点下载的下载软件
  16. Cocos2d的ChipMunk
  17. 新品周刊 | LINE FRIENDS李宁推出联名系列;FILA推出全新高级运动羽绒系列
  18. OpenNI SDK 2.0
  19. Apriori 、FP-Growth 和 Eclat 3 种经典的 ARM (关联规则挖掘)算法--自用
  20. 联想sr650安装centos_联想SR650安装windowsserver2008R2系统

热门文章

  1. Spring之@Configuration配置解析
  2. Office 2007在安装过程中出错
  3. eclipse 版本 查看
  4. Apache在windows下的安装与配置
  5. LeetCode(107)——二叉树的层次遍历 II(JavaScript)
  6. jQuery学习(九)—常用的包裹方法
  7. 前端—每天5道面试题(5)
  8. ajax手机号码验证,Jquery Validation 插件验证手机号
  9. 线程通信:生产者消费者问题
  10. 有多少人乘坐公交车时用NFC付钱?