[学习笔记]Javascript可选的分号
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. 总结
尽量写规范一些,防止编译器理解错你的表达。
[学习笔记]Javascript可选的分号的更多相关文章
- 学习笔记---Javascript事件Event、IE浏览器下的拖拽效果
学习笔记---Javascript事件Event.IE浏览器下的拖拽效果 1. 关于event常用属性有returnValue(是否允许事件处理继续进行, false为停止继续操作).srcE ...
- [JS学习笔记]Javascript事件阶段:捕获、目标、冒泡
当你在浏览器上点击一个按钮时,点击的事件不仅仅发生在按钮上,同时点击的还有这个按钮的容器元素,甚至也点击了整个页面. 事件流 事件流描述了从页面接收事件的顺序,但在浏览器发展到第四代时,浏览器开发团队 ...
- HTML 学习笔记 JavaScript(面向对象)
现在让我们继续跟着大神的脚步前进 学习一下JavaScript中的面向对象的思想,其实作为一个iOS开发者,对面向对象还是比较熟悉的,但是昨晚看了一下Js中的面向对象,妈蛋 一脸萌比啊.还好有大神.让 ...
- HTML 学习笔记 JavaScript (prototype)
原博地址:http://www.cnblogs.com/dolphinX/p/3286177.html 原博客的作者是一个非常牛逼的前端大神,我作为一个初学者,在此借助大神的博客进行自己的学习.在这里 ...
- HTML 学习笔记 JavaScript (String)
String对象用于存储字符串的数据.这里我们做了JavaScript的String字符串对象常用操作总结. 创建String对象的方式 声明:String 对象的方法也可以在所有基本字符串值中访问到 ...
- HTML 学习笔记 JavaScript (函数)
函数是由事件驱动的或者当他被调用时执行的可重复使用的代码块 实例 <!DOCTYPE html> <html> <head> <script> func ...
- [前端JS学习笔记]JavaScript function
一.函数的声明 1.1 function 命令 function methodName(params) { // code } 如下声明: function test_function(params) ...
- [JavaScript] 学习笔记-JavaScript基础教程
1.JavaScript介绍 1)JavaScript是互联网上最流行的脚本语言,这门语言可用于Web和HTML,更可广泛用于服务器.pc端.移动端.JavaScript是一种轻量级的编程语言,插入H ...
- js学习笔记----JavaScript中DOM扩展的那些事
什么都不说,先上总结的图~ Selectors API(选择符API) querySelector()方法 接收一个css选择符,返回与该模式匹配的第一个元素,如果没有找到匹配的元素,返回null ...
随机推荐
- 迭代器_iter_,生成器yeild,三元运算,列表解析(十三)
迭代器: l = [1, 2, 3, 4] iter = l.__iter__() print(iter) print(iter.__next__()) print(iter.__next__()) ...
- IDEA进行远程调试
biz-test本地调用测试环境01机器上面的needle项目,卡在查询数据库的地方(Jade停住不走了) 首先配置 相关项目 的服务器端部署jvm参数: 在needle的config.pp.temp ...
- 窗体监听事件WindowListener
EXIT_ON_CLOSE:结束窗口所在的应用程序.在窗口被关闭的时候会退出JVM. DISPOSE_ON_CLOSE:隐藏当前窗口,并释放此窗体占有的资源.如果程序没有其他线程在运行,当所有窗口都被 ...
- C# WinForm文章收集
DataGridView 使用方法集锦 https://blog.csdn.net/zhaoyu_m69/article/details/70307934 关于DataGridView的一些操作(很全 ...
- the difference __str__ and __repr__
First, let me reiterate the main points in Alex’s post: The default implementation is useless (it’s ...
- Cloud9 开发环境部署
安装和部署 cloud9 云端开发环境 简介 Cloud9 是亚马逊发布的一款基于云端的开发环境. AWS Cloud9 是一种基于云的集成开发环境 (IDE),您只需要一个浏览器,即可编写.运行和调 ...
- Hive记录-配置客户端可视化管理工具远程连接
配置客户端远程连接(方便可视化工具操作)-不需要在hive服务器上敲命令了 1.安装DBeaver工具:https://dbeaver.com/download/ 2.准备相关驱动文件(服务器上hiv ...
- IDEA中设置注释模板的方法
IDEA中设置注释模板主要分为两个部分,分别是创建java文件时类的注释和方法的注释. 这里为大家详细介绍一下方法,按MyEclipse的风格设置(MyEclipse的请看:MyEclipse中设置注 ...
- UVALive 4254 Processor(二分)
题目链接 题意 有n个任务,每个任务有三个参数ri,di和wi,表示必须在时刻[ri,di]之内执行,工作量为wi.处理器执行速度可以变化,当执行速度为s时,工作量为wi.处理器的速度可以变化,当执行 ...
- SGU 271 Book Pile
There is a pile of N books on the table. Two types of operations are performed over this pile: - a b ...