javascript有自动添加分号的功能,但是不是所有情况都会自动添加,要区分:

1,如果语句独占一行

如果当前行内的语句能够被js正确解析,那么就会在句尾添加一个分号。

(如何判断是否正确解析?你在控制台执行当前语句,不报错就可以-。-)

那么反之,如果当前语句不能被正确解析,那么就不会添加分号,而是将此行的末尾和下一行的开头连起来解析,所以就会产生其他问题。

a=1
b=1; // 第一个分号可以省略 var a
a
=
1 // 解析为 var a; a = 1; 因为等号是没办法解析的,所以必须将上面和下面联系起来,虽然a是可以解析的,因为上面已经声明了变量a

2,return , continue, break的换行处

如果上面三个关键字后换行了,那么会直接在后面加分号,所以如果有表达式要跟在后面,一定不能换行。

return
true; // 解析成return; true; 而不是return true;

3,代码块之后不能添加分号

比如if语句的代码块,for循环的代码块等等,后面不能手动写分号

4,以"(" , "[" , "/" , "+" , "-"开始的语句

如果一条语句以上面几个开始,那么它上面一行的代码结尾一定不能漏掉分号,尽管上一条语句可以单独被正确解析,例如

var a
[] // 报错 var a;
[] // 不报错

  

5,"++" , "--"也比较特殊

如果将其作为后缀表达式,它和表达式在同一行,否则,行尾填补分号,同时“++”和“--”作为下一行代码的前缀操作符:

x
++
y //解析为 x; ++y; 而不是我们期望的 x++; y;

  

JavaScript学习日志:关于js分号的更多相关文章

  1. javascript学习日志:前言

    javascript学习日志系列的所有博客,主要理论依据是<javascript权威指南>(犀牛书第6版)以及<javascript高级程序设计第三版>(红色书),目前js行业 ...

  2. Javascript学习记录——原生JS实现旋转木马特效

    昨天学习到了JS特效部分,然后老师讲了旋转木马特效的实现,如上图.不过只是讲了通过点击箭头实现图片的切换,对于点击图片本身以及二者联动却是没有讲解. 本着一颗追求完美的心,今天花费了一个中午终于将整个 ...

  3. JavaScript学习日志(六):事件

    这篇随笔,深恶痛绝,敲到快结束的时候,凌晨00:19,突然闪退,也不知道是Mac的原因还是chrome的原因,重新打开的时候,以为自动保存有效果,心想没关系,结果他么的只保存了四分之一,WTF?!!! ...

  4. JavaScript学习日志(五):DOM

    一,基本定义 DOM是针对HTML和XML文档的API,根据W3C的HTML DOM标准,html文档中所以内容(无论是元素还是标签还是注释还是元素属性)都是节点. 二,Node类型:每一个节点都含有 ...

  5. JavaScript学习日志(四):BOM

    BOM的核心对象就是window,这一章没什么好说的,总结一些比较常用的: 1,a未定义,a; //报错window.a; //undefined 不能用delete删除全局变量 2,html5不支持 ...

  6. JavaScript学习日志(一):变量,作用域和内存问题

    一,变量分为两种类型:基本类型值和引用类型值,基本类型包括:Undefined, String, Boolean, Null, Number,我们无法给基本类型值添加属性: 二,复制变量值的时候,如果 ...

  7. javascript学习一、js的初步了解

    1.javascript的简介: *javascript 是一种基于对象和事件驱动的语言,主要应用于客户端. -- 基于对象:  ** 提供了很多对象,可以直接使用. --事件驱动: ** html做 ...

  8. JavaScript学习日志(1)

    javascript用法: 1.HTML中的脚本必须位于<script>与</script>标签之间,可被放置在HTML页面的<body>和<head> ...

  9. JavaScript学习02(js快速入门)

    快速入门 基本语法 JavaScript的语法和Java的语法类似,每个语句以;结束,语句块用{...}.但是JavaScrip并不强制要求在每个语句的结尾加;,浏览器中负责执行JavaScript代 ...

随机推荐

  1. Python day02 三元运算

     type  查看数据类型.2 **32  :2的32次方 .浮点的表示类型是小数,但是小数不仅仅包括浮点 浮点数用来处理实数,即带有小数的数字 三元运算:  result = 值1 if 条件 el ...

  2. Git与GitHub学习笔记(八)git如何同时同步提交到码云和GitHub上

    前言: 今天github push代码一直push不上去,打算就备份一份代码带国内开源码云上. Github容易出现的情况是: 国内访问速度比较慢, 如果被墙掉的话,就直接没发使用了 如果开源个PHP ...

  3. SEO之网站关键词的优化 :首页,内页关键字,长尾关键字

    这篇文章主要讲的是SEO之网站关键词的优化 :首页,内页关键字,长尾关键字. 为了查找方便,小A汇总了所有SEO优化的相关教程,方便大家查找到自己想要的SEO优化技巧: SEO优化教程汇总. 网站关键 ...

  4. Qt 5中信号和槽的新语法

    QT 是一个跨平台的 C++ GUI 应用构架,它提供了丰富的窗口部件集,具有面向对象.易于扩展.真正的组件编程等特点,更为引人注目的是目前 Linux 上最为流行的 KDE 桌面环境就是建立在 QT ...

  5. Eclipse 配置scala开发环境(windows)

    1. scala2.10.4.msi 安装 2. 配置SCALA_HOME 及path路径 SCALA_HOME C:\Program Files (x86)\scala PATH :%SCALA_H ...

  6. PyQt4中的Treeview

    import sys from PyQt4 import QtCore, QtGui from qyolk import Ui_QYolk from yolk import yolklib class ...

  7. Linux常见命令(权限)

    创建a.txt和b.txt文件,将他们设为其拥有者和所在组可写入,但其他以外的人则不可写入:chmod ug+w,o-w a.txt b.txt 创建c.txt文件所有人都可以写和执行chmod a= ...

  8. swift中的AnyHashable

    AnyHashable是调和objc和Swift的产物 典型的场景是,objc下无泛型的NSDictionary到了Swift下,会变成什么?(典型例子是苹果来的推送消息) [Any: Any],这肯 ...

  9. windows 堆管理

    windows堆管理是建立在虚拟内存管理的基础之上的,每个进程都有独立的4GB的虚拟地址空间,其中有2GB的属于用户区,保存的是用户程序的数据和代码,而系统在装载程序时会将这部分内存划分为4个段从低地 ...

  10. Zabbix实战-简易教程(8)--添加item

    一.术语 1.1 Item概念 Item是从主机里面获取的所有数据.通常情况下 item称为监控项,例如我们host加入了 zabbix 监控,我们需要监控它的内存.CPU信息,那么获取的CPU或内存 ...