javascript 分号理解
javascript自动填补分号的规则
在说要不要写分号之前,先了解一下javascript自动填补分号的规则。
在《javascript权威指南》中有一段话“如果一条语句以“(”、“[”、“/”、“+”、或“-”开始,那么它极有可能和前一条语句合在一起解释。”,写javascript的时候,如果每条语句都独自写成一行,是不需要写分号的,但是下一行如果遇到上面提到的符号,javascript可能会与下一行合并解释。其中以“/”、“+”和“-”开头的语句在实现项目中比较少见,以“(”和“[”开头的则非常常见。下面各找了一个例子来说明。
以“(”开头的情况:
a = b
(function() {
})()
javascript会解释成:
a = b(function() {
})();
以“[”开头的情况
a = function() {
}
[1,2,3].forEach(function(item) {
});
javascript会解释成:
a = function() {
}[1,2,3].forEach(function(item) {
});
以“/”开头的情况
a = 'abc'
/[a-z]/.test(a)
期望的结果为true,但是javascript会解释成,接着就报错了:
a = ‘abc’/[a-z]/.test(a);
以“+”开头的情况
a = b
+c
javascript会解释成
a = b + c;
以“-”开头的情况
a = b
-c
javascript会解释成
a = b - c;
如果在return、break、continue、throw等关键字后面换行,javascript会在换行处填补分号。如:
return
{
a: 1
}
会解释成:
return;
{
a: 1
}
如果“++”或“--”运算符作为表达式的后缀时,表达式应该写在同一行,否则也会解释有误
例如:
x
++
y
会解释成:
x;
++y;
而不是
x++;
y;
javascript 分号理解的更多相关文章
- Javascript中理解发布--订阅模式
Javascript中理解发布--订阅模式 阅读目录 发布订阅模式介绍 如何实现发布--订阅模式? 发布---订阅模式的代码封装 如何取消订阅事件? 全局--发布订阅对象代码封装 理解模块间通信 回到 ...
- 第一百二十九节,JavaScript,理解JavaScript库
JavaScript,理解JavaScript库 学习要点: 1.项目介绍 2.理解JavaScript库 3.创建基础库 从本章,我们来用之前的基础知识来写一个项目,用以巩固之前所学.那么,每个项目 ...
- 《javascript个人理解,个人整理。》
万事开头难. 本人做前端工程师,已几年,没有特别大的,已文字方式去做总结. 前段时间,早已经想好,但是迟迟没有去下笔!好在现在陆陆续续的写下去. 我知道这是一个很大的工程,但是我还是想做下去,不为别的 ...
- 【转】Javascript中理解发布--订阅模式
Javascript中理解发布--订阅模式 阅读目录 发布订阅模式介绍 发布---订阅模式又叫观察者模式,它定义了对象间的一种一对多的关系,让多个观察者对象同时监听某一个主题对象,当一个对象发生改变时 ...
- JavaScript深入理解sort()方法
一. 基本用法 let arr1 = [3, 5, 7, 1, 8, 7, 10, 20, 19] console.log(arr1.sort()) // [1, 10, 19, 20, 3, 5, ...
- javascript深入理解js闭包(转)
javascript深入理解js闭包 转载 2010-07-03 作者: 我要评论 闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现. ...
- 【转】javascript 分号问题
javascript的分号代表语句的结束符,但由于javascript具有分号自动插入规则,所以它是一个十分容易让人模糊的东西,在一般情况下,一个换行就会产生一个分号,但实际情况却不然,也就是说在ja ...
- javascript的理解及经典案例
js的简介: JavaScript是一种能让你的网页更加生动活泼的程式语言,也是目前网页中设计中最容易学又最方便的语言. 你可以利用JavaScript轻易的做出亲切的欢迎讯息.漂亮的数字钟.有广告效 ...
- javascript深入理解js闭包
一.变量的作用域 要理解闭包,首先必须理解Javascript特殊的变量作用域. 变量的作用域无非就是两种:全局变量和局部变量. Javascript语言的特殊之处,就在于函数内部可以直接读取全局变量 ...
随机推荐
- IC设计笔试面试小问题总结(随时更新)-IC设计笔记(三)
都是一些细节性问题,放在一起记忆,一问一答的形式,有任何问题欢迎文章上方微博讨论,多思多想. 1.What makes the difference between Run time and CPU ...
- 20155210 潘滢昊 Java第三次实验
Java第三次实验 实验内容 在IDEA中使用工具(Code->Reformate Code)把代码重新格式化 在码云上把自己的学习搭档加入自己的项目中,确认搭档的项目加入自己后,下载搭档实验二 ...
- C语言 迭代部分的代码编写
C语言代码学习 迭代部分 迭代要用到函数部分的知识,一开始我写了计算n!的计算,代码和运行结果如下: 结果只能单一的计算出整数内的值,如果输入负值则结果为返回值1,显然是不对的,根据查书学习以后,知道 ...
- 20155302 《Java程序设计》实验一(Java开发环境的熟悉)实验报告
20155302 <Java程序设计>实验一(Java开发环境的熟悉)实验报告 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试Jav ...
- 20155308 2016-2017-2 《Java程序设计》实验3
20155308 2016-2017-2 <Java程序设计>实验3 实验内容 XP基础 XP核心实践 相关工具 实验步骤 (一)敏捷开发与XP 敏捷开发是一种以人为核心.迭代.循序渐进的 ...
- html查漏补缺之meta标签
什么是meta标签? meta标签是html标记head区的一个关键标签,它位于HTML文档的<head>和<title>之间(有些也不是在<head>和<t ...
- 机器学习与R语言——基本语法
一.注释 1.选中要注释的内容,快捷键Ctrl+Shift+C(取消注释方法相同) 2.在需注释内容前输入# #需注释的内容 3.利用if语句,将判断条件设置为false则可跳过if语句中的内容,相当 ...
- Ubuntu 16.04 主题美化及常用软件安装
一.主题美化 系统清理 系统更新: 安装完系统之后,需要更新一些补丁.Ctrl+Alt+T调出终端,执行一下代码: sudo apt-get update sudo apt-get upgrade 卸 ...
- Python+MySQL开发医院网上预约系统(课程设计)一
一:开发环境的配置 1:桌面环境为cnetos7+python2.7 2:MySQL的安装与配置 1)MySQL的安装 MySQL官方文档: http://dev.mysql.com/doc/mysq ...
- 用gdb调试程序(Linux环境)
一般来说,GDB主要帮忙你完成下面四个方面的功能: 1.启动你的程序,可以按照你的自定义的要求随心所欲的运行程序. 2.可让被调试的程序在你所指定的调置的断点处停住.(断点可以是条件表达式) ...