美文网首页
JavaScript隐性分号

JavaScript隐性分号

作者: 破书 | 来源:发表于2017-01-13 14:48 被阅读0次

理论上可以通过换行符分隔单条语句而不会导致错误,即JavaScript会自动在换行符前添加分号。

然而JavaScript不会在所有换行处都添加分号,只有当试图合并下一行的语句会导致语法错误时才会自动添加分号。如

var
a
=
12
+
3

会被解析成
···
var a=12+3;

但是有两个例外,1,当遇上return,break和continue时,如果没有分号而换行,Javascript会自动添加分号而不会考虑下一行的语句,如:

return
a

会被解析成

return; a;

而不是

return a;

2,当++和--两个运算符作为后缀运算符时,省略分号会导致JavaScript认为它们是前缀运算符,例如:

var a=10
a
++

它不会被解析成

var a=10;
a++;

而是会被解析成:

var a=10;
a;
++;

虽然这样会造成语法错误。

注意,如果一条语句以“(”,“[”,“\”,“+”开始,在省略分号的编码风格中,它们既有可能会被连接到前一行代码的后面一起解析,这往往是我们不想要的,比如:

var a=b+f
(x+y)

会被解析成

var a=b+f (x+y);

变成了一个函数调用语句,虽然通常f并不是函数而会导致函数没有声明的错误,但这并不是语法错误,然而这也不是我们通常想要的结果,因此有一种编码风格会在所有以“(”,“[”,“+”,“\”符号开头的语句前再添加一个分号。

我习惯不省略分号的编码习惯。

相关文章

  • JavaScript隐性分号

    理论上可以通过换行符分隔单条语句而不会导致错误,即JavaScript会自动在换行符前添加分号。 然而JavaSc...

  • 6.了解分号插入的局限

    JavaScript能够离开语句结束分号工作 JavaScript分号插入规则 分号仅在}标记之前、一个或多个换行...

  • JavaScript自动分号补齐的坑

    自动分号补齐(auto semicolon insertion,简称ASI) 在JavaScript中,行尾的分号...

  • JavaScript基础知识

    JavaScript 语句: 概念: JavaScript 语句以(;分号)结尾。 例子 :document.ge...

  • JS-为什么说添加分号是一个好习惯

    JavaScript在解析代码的时候并不是每行都添加分号的,自动分号插入(ASI)是JavaScript解析器添加...

  • Airbnb规范

    不使用分号 使用分号 为什么? 当 JavaScript 遇到没有分号的换行符时,它使用一组称为自动分号插入的规则...

  • JavaScript学习笔记

    ### JavaScript学习笔记 ##### JavaScript`语句` - 分号可在一行写多个语句; - ...

  • 2019-08-26 javascript语句

    分号用于分割javascript语句。 javascript代码块,用花括号分隔开。 javascript同样有很...

  • javaScript 基础

    初学JavaScript基础 ASI 自动分号插入(ASI)的目标是使分号对行结束来来说是可选的。引入自动分号插入...

  • JavaScript语句

    1.分号:分号用于分隔JavaScript语句 通常我们在每条可执行语句结尾添加分号,使用分号的另一处是一行中编写...

网友评论

      本文标题:JavaScript隐性分号

      本文链接:https://www.haomeiwen.com/subject/zflsbttx.html