首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

JS分号可以省掉吗?

摘要: JavaScript语言从设计之初就是考虑带分号使用不带分号编码规则就要小心点啦。...这么简单代码为什么会出错呢?第一反应就是JS引擎将代码生成语法树时候,可能解析不正确。于是,我在第一行末尾加分号测试。...在网络上搜索JavaScript关于分号BUG,发现有非常多关于要不要使用分号讨论。...大宗师Douglas Crockford表示要正确使用分号 引用minhan在扯不完 JS 分号问题文中论述: JSON、JSLint、JSMin和ADSafe 创造者、ECMA JavaScript...如果你不想用分号,又怕出问题,v2ex上有位童鞋给出了一个速记方案: 如果你写 JS 代码不喜欢带分号,而又搞不清什么时候必须加分号,可以这么做:在以 "("、"[" 、"/"、"+"、"-" 开头语句前面都加上一个分号

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

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

回答,让我又一次看到大牛风采,实在佩服万分。但单纯敬佩是不足以回报他如此优秀文字,必须深入理解文字含义和背后原理才不愧呢!   在这之前我们需要先理解ASI(自动分号插入机制)。...,而且必须加分号,否则编译就不通过了。...ASI机制不是说在解析过程中解析器自动把分号添加到代码中,而是说解析器除了分号还会以换行为基础按一定规则作为断句依据,从而保证解析正确性。    首先这些规则是基于两点: 1....因此分不分号纯属个人和团队偏好问题,当然也可以混合使用咯(下面借一下大牛@高原图) ?  ...对于我这种能少敲键盘则少敲,能不用鼠标就不用大懒虫,自然而然加入到“无分号党”怀抱咯,入党前提条件就是记住一下规则来应付No ASI情况: 在以 ([/+- 开头语句前加分号(由于正常写法均不会出现以

1.7K80

JS该写分号嘛? - wuuconixs blog

ASI 在写JS之前,我一直在写Python,习惯了没有分号代码。 刚好,JS为我们提供了 自动分号插入 Automatic Semicolon Insertion!...这让我们在大部分情况下都不用写分号,非常优雅。 然而ASI在某些情况下将产生错误。 ASI发生错误情况 IIFE 立即调用函数表达式 考虑以下代码。...> node 1.js a: 4 b: 3 c: 3 d: 4 js把中间两个swap看成了 [a, b] = [b, a][c, d] = [d, c] 仍然是一个连等,我们需要从右往左看,首先是...这种没有报错隐式错误,真在Leetcode刷题时候 够你Debug半天了2333。 总结 实际上,完全不用为了ASI在一些情况下导致错误而每行都加上一个分号。...对于我目前遇到这两种情况,可以总结一下,如果一行开始是一个(或者[,那么再上一行你需要手动加上一个分号,至于其他情况,完全不用考虑分号~ 还可以参考一下尤大这篇回答 https://www.zhihu.com

1.1K20

node.js要不要加分号

一开始,关于在node.js句末不加分号,我是拒绝。因为有时不加分号会报错。 我觉得node.js在语法层面挺拧巴,要么就像PHP那样严格要求加分号,要么就像python一律不加分号。...而node.js却表现出一副欲拒还迎姿态,让人感觉就是既要拥抱变化,又要抱残守缺。 ?...加不加分号,这是一个问题 直到有一天我了解了加不加分号场景,才终于释然 一言以蔽之:当代码是以 ( [ ` 这些符号开头时,就需要在代码之前加上分号,其他场景都不需要加分号 let msg =....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里分号,你加还是不加?

在JavaScript中,如果语句各自独占一行,通常可以省略语句之间分号(程序结尾或者右“}”之前分号也可以省略。)...因此,在编写JavaScript程序时,一般会有两种编码习惯,加分号 和 不加分号 : 加分号: 许多程序员使用分号来明确标记语句结束,即使在并不完全需要分号时候也是如此; 不加分号: 另一种风格是...,在任何可以省略分号地方,都将其省略,只有在不得不用时候才使用分号。...下面来记录和讲解一下,JavaScript中使用分号细节问题。...如: x ++ y 这段代码解析为: x; ++y; 而不是: x++;y; 4.使用分号好处 加上分号可以避免很多错误(例如,不完整输入),开发人员可以放心通过删除多余空格来压缩代码

1.6K11

不需要括号和分号XSS

几年前,我发现了一种在JavaScript中调用函数而不使用括号onerror和throw语句技术。...因为throw是一个语句,所以通常需要onerror使用分号来完成赋值,以便开始一个新语句而不是形成一个表达式。...我遇到了一个过滤括号和分号网站,我认为必须能够使用这种技术来执行一个没有分号函数。第一种方法非常简单:您可以使用花括号来形成一个块语句,您可以在其中进行onerror分配。...在块语句之后,您可以使用  throw 不带分号(或新行): {onerror=alert}throw 1337 块声明很好,但我想要一个更酷选择。...当您Error在Firefox中使用该函数创建异常时,它不包含“未捕获异常”前缀。

2K20

bash 脚本中分号作用「建议收藏」

在Linux bash shell中,语句中分号一般用作代码块标识 1、单行语句一般要用到分号来区分代码块。...比如: weblogic@pmtest:/if [ “PS1” ]; then echo test is ok; fi test is ok 该脚本或命令行中,须要两个分号才为正确语句,第一个分号是then...前分号,用于标识条件块结束。...第二个分号在fi前,用于标识then块结束,假设缺少这两个分号,则程序运行错误。 这里有趣是echo后字符串不须要使用引號也能正确地被识别。 注意:语句结尾不要分号。 2、该代码若写作多行。...而不使用esle if,若使用else if,则为不完整语句,如以下样例不能被正确运行: weblogic@pmtest:/if [ “PS1” ] > then echo test is ok >

2.2K20

linux中分号&&和&,|和||说明与用法

在用linux命令时候,我们可以一行执行多条命令或者有条件执行下一条命令,下面我们讲解一下linux命令分号&&和&,|和||用法 “;”分号用法 方式:command1 ; command2 用...连续使用管道意味着第一个命令输出会作为 第二个命令输入,第二个命令输出又会作为第三个命令输入,依此类推 利用一个管道 # rpm -qa|grep licq 这条命令使用一个管道符“|”建立了一个管道...利用多个管道 # cat /etc/passwd | grep /bin/bash | wc -l 这条命令使用了两个管道,利用第一个管道将cat命令(显示passwd文件内容)输出送给grep...语法格式如下: command1 && command2 [&& command3 …] 命令之间使用 && 连接,实现逻辑与功能。 只有在 && 左边命令返回真(命令返回值 $?...“||”符号用法 逻辑或功能 语法格式如下: command1 || command2 [|| command3 …] 命令之间使用 || 连接,实现逻辑或功能。

5.2K21

JS 中 cookie 使用

因此,cookie可以跨越一个域名下多个网页,但不能跨越多个域名使用。   ③、不同浏览器对 cookie 实现也不一样。即保存在一个浏览器中 cookie 到另外一个浏览器是 不能获取。...,我们可以通过读取 cookie 中信息,恢复购物车中物品。...然后通过查询数据库信息来恢复购物车里物品   ③、页面之间传值。在实际开发中,我们往往会通过一个页面跳转到另外一个页面。后端服务器我们可以通过数据库,session 等来传递页面所需要值。...3、怎么使用 cookie?   ...比如: document.cookie="name=中文"; //为了防止中文乱码,我们可以使用encodeURIComponent()编码;decodeURIComponent()解码 document.cookie

6.1K70

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

在JavaScript中,如果语句各自独占一行,通常可以省略语句之间分号(程序结尾或者右“}”之前分号也可以省略。)...因此,在编写JavaScript程序时,一般会有两种编码习惯,加分号 和 不加分号 : 加分号: 许多程序员使用分号来明确标记语句结束,即使在并不完全需要分号时候也是如此; 不加分号: 另一种风格是...,在任何可以省略分号地方,都将其省略,只有在不得不用时候才使用分号。...下面来记录和讲解一下,JavaScript中使用分号细节问题。...如: x ++ y 这段代码解析为: x; ++y; 而不是: x++;y; 4.使用分号好处 加上分号可以避免很多错误(例如,不完整输入),开发人员可以放心通过删除多余空格来压缩代码; 加上分号在某些情况下可以增进代码性能

83311

因为一个分号,引起程序员大讨论

之前在网上看到过一段有趣代码,据说在女生节时候,某软件学院学生还专门给女生拉了条幅   代码   为了看更清楚一点,我们把上面的代码整理出来,代码结构如下   整理出来代码   站在程序员角度...作为一个程序员,考虑到程序严谨性,我们认真分析一下。   首先,forever变量都没有定义,程序怎么能运行下去呢   然后,在for循环后出现了一个分号是什么意思呢?...软院男生难道不知道,如果加了分号,相当于循环是没有输出语句么,如果forever变量定义成无限大,那么“I Love My Girl”这句话估计也是永远没机会说出口了。   ...当然啦,这仅仅是站在程序员立场去看问题,网上还是有一些神评论,我们可以一起看看  吐槽   首先我们来看看吐槽这段代码 一个分号,让所有的爱还没开始就已经结束了 爱你在心,分号却像现实阻挡,始终无法开口...  大家觉得,这个分号是想表达真情实意,还是不小心手抖加上呢?

75580

touch.js使用总结

Touch 手机端操作 基本事件: touchstart  //手指刚接触屏幕时触发 touchmove    //手指在屏幕上移动时触发 touchend     //手指从屏幕上移开时触发 touchcancel...type事件名称 rotation旋转角度 scale缩放比例 direction操作方向属性 fingersCount操作手势数量 position相关位置信息, 不同操作产生不同位置信息...distance               swipe类两点之间位移 distanceX, x           手势事件x方向位移值, 向左移动时为负数 distanceY, y          ...手势事件y方向位移值, 向上移动时为负数 angle            rotate事件触发时旋转角度 duration                  touchstart 与 touchend...之间时间戳 factor             swipe事件加速度因子 startRotate启动单指旋转方法,在某个元素touchstart触发时调用

1.7K10

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券