首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

JS分号可以省掉吗?

第一反应就是JS引擎将代码生成语法树的时候,可能解析不正确。于是,我在第一行末尾加分号测试。...大宗师Douglas Crockford表示要正确使用分号 引用minhan在扯不完的 JS 分号问题文中的论述: JSON、JSLint、JSMin和ADSafe 的创造者、ECMA JavaScript...如果你不想用分号,又怕出问题,v2ex上有位童鞋给出了一个速记方案: 如果你写 JS 代码不喜欢带分号,而又搞不清什么时候必须加分号,可以这么做:在以 "("、"[" 、"/"、"+"、"-" 开头的语句前面都加上一个分号...) 关于Fundebug Fundebug专注于JavaScript、微信小程序、微信小游戏、支付宝小程序、React Native、Node.js和Java实时BUG监控。...版权声明 转载时请注明作者 Fundebug以及本文地址: https://blog.fundebug.com/2018/09/18/js-semicolon-bug/

9K60

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] 而这个赋值语句中已经用到了...然后它后面的[3, 4]实际上是一个下标选择,里面的3, 4会被看成一个逗号表达式,它的值是最后一个元素,即4。...总结 实际上,完全不用为了ASI在一些情况下导致错误而每行都加上一个分号。...对于我目前遇到的这两种情况,可以总结一下,如果一行的开始是一个(或者[,那么再上一行你需要手动加上一个分号,至于其他的情况,完全不用考虑分号~ 还可以参考一下尤大的这篇回答 https://www.zhihu.com

1.1K20

node.js要不要加分号

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

1.9K20

逗号运算符和逗号表达式

如 3+5,6+8 上式称为逗号表达式。逗号表达式的一般形式为 表达式1,表达式2 逗号表达式的求解过程是:先求解表达式1,再求解表达式2。...整个逗号表达式的值是表达式2的值 例如,上面的逗号表达式“3+5,6+8”的值为14 又如,逗号表达式a=3 * 5,a*4,对此表达式的求解,赋值运算符的优先级别高于逗号运算符,因此应先求解a=3 *...再如,一个逗号表达式又可以与另一个表达式组成一个新的逗号表达式,如(a=35,a4),a+5先计算出a的值等于15,再进行a*4的运算得60(但a值未变,仍为15),再进行a+5得20,即整个表达式的值为...20 逗号表达式的一般形式可以扩展为 表达式1,表达式2,表达式3,…………,表达式n 它的值为表达式n的值 逗号运算符是所有运算符中级别最低的,因此,下面两个表达式的作用是不同的: x=(a=3,6...*3) x=a=3,6*a 第一个是一个赋值表达式,将一个逗号表达式的值赋给x,x的值等于18 第二个是逗号表达式,它包括一个赋值表达式和一个算数表达式,x的值为3 其实,逗号表达式无非是把若干个表达式

1.1K20
领券