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

JS的分号可以省掉吗?

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

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

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

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

    1.8K80

    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.2K20

    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('我是一个匿名函数

    2K20

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

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

    2.2K11

    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.3K20

    JS 中 cookie 的使用

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

    6.2K70

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

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

    78680

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

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

    96011

    Python与人工智能——16、取消print换行与分号的作用

    Python语言,对其它的语言友好度都不是很高,那么,我们就非常的有必要将Python深入的了解一下,本系列文章的目的就是为了让大家对于Python有个更加直观的了解,并且要使用Python做很多的小应用...中,分号(;)的作用相对有限。...在某些特定的情况下,比如在交互式环境中,可以使用分号快速测试多个小的表达式而不用逐行输入。...而分号在 Python 中的作用相对较小。它主要可用于在同一行放置多个语句,但这种做法不被提倡,因为会降低代码可读性。一般来说,Python 强调每行一个语句以提高代码的清晰性。...分号在交互式环境中可用于快速测试多个小表达式,但在正式代码编写中应谨慎使用。总体而言,这两个特性在特定场景下有一定用途,但需权衡对代码可读性和规范性的影响。

    18710
    领券