首页
学习
活动
专区
工具
TVP
发布

JS分号可以省掉

ESLint报一大堆错误,改得我想砸键盘,花了好些时间才适应,下面列出一些代表性的规则: 只能使用单引号 函数定义的圆括号和左大括号之间一定要有空格: function(args) { .. } import语句在大括号之后一定要有空格...第一反应就是JS引擎将代码生成语法树的时候,可能解析不正确。于是,我在第一行末尾加分号测试。...大宗师Douglas Crockford表示要正确使用分号 引用minhan在扯不完的 JS 分号问题文中的论述: JSON、JSLint、JSMin和ADSafe 的创造者、ECMA JavaScript...赶紧修复吧,学学怎么正确地使用分号。『!』号并不语句的分隔号,『;』才是。 JSMin处理如下代码后无法正确执行: clearMenus() !...如果你不想用分号,又怕出问题,v2ex上有位童鞋给出了一个速记方案: 如果你写 JS 代码不喜欢带分号,而又搞不清什么时候必须加分号,可以这么做:在以 "("、"[" 、"/"、"+"、"-" 开头的语句前面都加上一个分号

9K60

JavaScript里的分号,你还是不加?

对于很多的编程语言,在一条语句结尾加上分号是必须的。然而,对于JavaScript,则并不如此。...在JavaScript中,如果语句各自独占一行,通常可以省略语句之间的分号(程序的结尾或者右“}”之前的分号也可以省略。)...因此,在编写JavaScript程序时,一般会有两种编码习惯,加分号 和 不加分号 : 加分号: 许多程序员使用分号来明确标记语句的结束,即使在并不完全需要分号的时候也是如此; 不加分号: 另一种风格是...2.什么情况下可以不加分号 不加分号的情况下,JavaScript在解析时会自动插入分号,在满足以下两个条件的情况下,JavaScript会自动插入分号,可以不加分号: 2.1每条语句各占一行 如果多条语句中每条语句各占一行...如果前一条语句无法和后一条语句合并解析,JavaScript才会在第一条语句后插入分号,这是通用规则。

1.5K11
您找到你想要的搜索结果了吗?
是的
没有找到

JS魔法堂:ASI(自动分号插入机制)和前置分号

一、前言                                   今晚在知乎看到前端技术专家——贺师俊对《JavaScript 语句后应该加分号么?》...// 三个空语句 ;;; // 只有if条件语句语句块为空语句。...var a = 1 while(++a < 100); 三、前置分号                             重申一下分号的作用——作为语句的断言(EOS),目的是让解析器正确解析程序。...对于我这种能少敲键盘则少敲,能不用鼠标就不用的大懒虫,自然而然加入到“无分号党”的怀抱咯,入党的前提条件就是记住一下规则来应付No ASI的情况: 在以 ([/+- 开头的语句前加分号(由于正常写法均不会出现以... .,*% 作为语句开头,因此只需记住前面5个即可,你看能懒则懒哦)  然后就是通过合理的缩进和空白行来使代码结构更为清晰(coffeescript不就是这样的?!)

1.7K80

JS该写分号嘛? - wuuconixs blog

ASI 在写JS之前,我一直在写Python,习惯了没有分号的代码。 刚好,JS为我们提供了 自动分号插入 Automatic Semicolon Insertion!...和IIFE一样,引擎把代码理解成了 let a = 1, b = 2[a, b] = [b, a] 逗号后面是一个连等,需要从右边往左看,即先看2[a, b] = [b, a] 而这个赋值语句中已经用到了...所以总的语句就变成了[a, b] = undefined = [d, c] 你可能又想吐槽undefined = [d, c]算什么鬼,实际上undefined是可以作为左操作数的,只不过静默失败。...总结 实际上,完全不用为了ASI在一些情况下导致错误而每行都加上一个分号。...对于我目前遇到的这两种情况,可以总结一下,如果一行的开始是一个(或者[,那么再上一行你需要手动加上一个分号,至于其他的情况,完全不用考虑分号~ 还可以参考一下尤大的这篇回答 https://www.zhihu.com

1.1K20

node.js要不要加分号

一开始,关于在node.js句末不加分号,我是拒绝的。因为有时不加分号会报错。 我觉得node.js在语法层面挺拧巴的,要么就像PHP那样严格要求加分号,要么就像python一律不加分号。...不加分号,这是一个问题 直到有一天我了解了不加分号的场景,才终于释然 一言以蔽之:当代码是以 ( [ ` 这些符号开头时,就需要在代码之前加上分号,其他场景都不需要加分号 let msg =...'不加分号呢' (function () { console.log('我是一个匿名函数') }()) 结果报错: 我是一个匿名函数 /Users/airmb/code/node/01/04....js:3 (function () { ^ TypeError: "不加分号呢" is not a function at Object....:191:16) at bootstrap_node.js:612:3 正确的写法: let msg = '不加分号呢' ;(function () { console.log('我是一个匿名函数

1.9K20

每天学点JavaScript基础(2)——JavaScript里的分号,你还是不加?

JavaScript里的分号,你还是不加? 1.前言 我们接触的大部分编程语言,都会以 分号 作为代码的结束,将程序语句分隔开来,JavaScript同样如此。...在JavaScript中,如果语句各自独占一行,通常可以省略语句之间的分号(程序的结尾或者右“}”之前的分号也可以省略。)...因此,在编写JavaScript程序时,一般会有两种编码习惯,加分号 和 不加分号 : 加分号: 许多程序员使用分号来明确标记语句的结束,即使在并不完全需要分号的时候也是如此; 不加分号: 另一种风格是...2.什么情况下可以不加分号 不加分号的情况下,JavaScript在解析时会自动插入分号,在满足以下两个条件的情况下,JavaScript会自动插入分号,可以不加分号: 2.1每条语句各占一行 如果多条语句中每条语句各占一行...如果前一条语句无法和后一条语句合并解析,JavaScript才会在第一条语句后插入分号,这是通用规则。

69011

WPS JS宏——For语句

version 4.4.131.D001.64.190906 (YHKYLIN-OS@Kylin) WPS版本:WPS Office 2019 WPS表格(11.8.2.10533) 一个简单的for循环语句...就这个简单的for循环语句,差点把我整放弃了! 这个语句上面只循环了20次,那是因为我尝试把数字改到50的时候,WPS竟然卡死了! 循环20次的情况下,我尝试多运行了几次,竟然也卡死了!...后来把这个语句单独放到一个新文件里又正常了,然后回到原来的那个文件,删除了一些Sheet和单元格内容后,也正常了,再怎么测试也没复现bug!!...和VBA一样,for语句也有一种for...in的用法: function testForIn() { var arr = new Array(3) for (let i = 0; i < 10;...arr10" for (x in arr) { Debug.Print(arr[x]) } } 但这里的x in arr和VBA是不一样的,在VBA里,这里的x是arr数组中当前遍历值的一个拷贝,而JS

2.6K30

写给前端专家的一封公开信:关于分号(翻译)

我推荐新人去了解 JS 语句是到底是怎么「断句」的,那样才能写出自己认为优美的代码。...Inimino 的文章《JS 分号必知必会》对此解释得很清楚,他本人对是否添加分号持保留意见,但我打算更主观一些。...第四条是我们恐惧的诱因:「不行,你一定要加上分号,不然下一行的二元操作符会引发问题的!」但是,如果下一行不想影响上一行,只要在行首一个分号就能解决问题。...如果你在 return throw break continue ++ 或 -- 后面一个 \n,那么语句就立即结束。...糟糕的理由 「自动加分号(ASI)不靠谱。」 真的? 这话在 JavaScript发展的早期,也就是 90 年代,就有很多人说。

72670

写给前端专家的一封公开信:关于分号(翻译)

我推荐新人去了解 JS 语句是到底是怎么「断句」的,那样才能写出自己认为优美的代码。...Inimino 的文章《JS 分号必知必会》对此解释得很清楚,他本人对是否添加分号持保留意见,但我打算更主观一些。...第四条是我们恐惧的诱因:「不行,你一定要加上分号,不然下一行的二元操作符会引发问题的!」但是,如果下一行不想影响上一行,只要在行首一个分号就能解决问题。...如果你在 return throw break continue ++ 或 -- 后面一个 \n,那么语句就立即结束。...糟糕的理由 「自动加分号(ASI)不靠谱。」 真的? 这话在 JavaScript发展的早期,也就是 90 年代,就有很多人说。

49210

JS高级前端开发群群说明

同时也有很多同学问我高级群怎么的?高级群里边都有一些什么人?他们都在讨论什么问题?什么阶段的人进入高级群?  就这些问题,写一篇文章正面回应一下。 二....现在群的组织分布是这样的,理解的状态是以下的几种,但最终的目的是想创建一个:互联网学习净土,或一个人才培养输出的基地:  JS高级前端开发群,JS中级前端开发群,JS初级前端开发群,JS入门级前端开发群...JS初级前端开发群 389875212 [2000人大群]:有一年左右的工作经验,了解行业,职业的方向。具备css,js基础能力者。 ?...JS高级前端开发群 [2000人大群] :3年前端工作经验以上,具备独立开发前端能力,有一定的带人经验,具备CTO候选人资质者。当然有深厚JS功底者,可破格邀请进入。...说明: 以上各群入门群,初级群,JS中级前端开发群,JS高级前端开发群关闭正常的群入口,由群主单方向邀请加入。 不建议串群,一个账号加多个群,一旦发现直接T。

3.9K20
领券