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

JS分号可以省掉

背景 最近在项目中开始使用新的编码规范,一开始ESLint报一大堆错误,改得我想砸键盘,花了好些时间才适应,下面列出一些代表性的规则: 只能使用单引号 函数定义的圆括号和左大括号之间一定要有空格: function...第一反应就是JS引擎将代码生成语法树的时候,可能解析不正确。于是,我在第一行末尾加分号测试。...,那么为什么还会推崇这样的编码规范呢?...大宗师Douglas Crockford表示正确使用分号 引用minhan在扯不完的 JS 分号问题文中的论述: JSON、JSLint、JSMin和ADSafe 的创造者、ECMA JavaScript...如果你不想用分号,又怕出问题,v2ex上有位童鞋给出了一个速记方案: 如果你写 JS 代码不喜欢带分号,而又搞不清什么时候必须加分号,可以这么做:在以 "("、"[" 、"/"、"+"、"-" 开头的语句前面都加上一个分号

9K60

你真的知道『立即执行函数』

console.log('Function Expression'); } 函数调用 test(); test2(); 注:()对于函数名后面的括号,叫做执行符号 3、立即执行函数的使用 声明后,直接(...w3c 官网推荐,立即执行函数的编写规范: (function (){ console.log('Function Expression'); }()); 实践中,一般用下面的方式,因为代码看着比较清晰...(function (){ console.log('Function Expression'); })(); 6、为什么立即执行函数前逗号 ;(function (){ console.log...('Function Expression'); })(); 主要因为,程序员的编程习惯问题,很多程序员,在语句结束末尾不加分号 js中,加上分号才会判断它是个语句,平时我们没有加分号js会自动为我们加上分号...如:console.log('hahha') js 解析成 console.log('hahha'); 而括号太多时,js不能正确识别,所以,就要我们自己加分号; (function (){ console.log

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

    规范

    (本人还不够好,所以几乎没有) JavaScript规范 JS规范就很多了,各个大公司的规范也不尽相同,由于水平有限,在我的理解就是,一个项目的规范主要就是约定好代码的风格。...在此罗列一些基础的JavaScript代码规范: 缩进:统一缩进,一个项目码四个空格一个tab,码两个空格一个tab; 空格:二元运算符左右空格,一元运算符不允许有空格,var a = b; a...a;冒号之后有空格var obj = {a: 1};逗号之后又空格function(a, b, c){}; 分号:函数定义结束不加分号,其他都加分号function(){} for(){}; 命名...:都已驼峰法命名(有人建议常量都大写然后下划线隔开,类首字母大写) 注释:注释规范有单行、多行、文件注释、命名空间注释等等等等,水平有限,还未实践,可自行百度; 字符串:因为JS的特性,建议都用单引号...多个选择器声明同一样式时,每个选择器各占一行 .post, .page{} > + 等选择器两边空格

    62930

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

    但是我不是很敢学的你风格,因为很多 JS 教材都说 JS 解释器的自动加分号机制会对代码有影响。 如果我不把逗号放在行尾,而是放在下一行行首,在浏览器里是否安全呢?...Inimino 的文章《JS 分号必知必会》对此解释得很清楚,他本人对是否添加分号持保留意见,但我打算更主观一些。...第四条是我们恐惧的诱因:「不行,你一定要加上分号,不然下一行的二元操作符会引发问题的!」但是,如果下一行不想影响上一行,只要在行首一个分号就能解决问题。...如果你在 return throw break continue ++ 或 -- 后面一个 \n,那么语句就立即结束。...规范:如果为了团队代码的一致性,比如统一采用了 JSHint,那么也可以这样做。 糟糕的理由 「自动加分号(ASI)不靠谱。」 真的

    77270

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

    但是我不是很敢学的你风格,因为很多 JS 教材都说 JS 解释器的自动加分号机制会对代码有影响。 如果我不把逗号放在行尾,而是放在下一行行首,在浏览器里是否安全呢?...Inimino 的文章《JS 分号必知必会》对此解释得很清楚,他本人对是否添加分号持保留意见,但我打算更主观一些。...第四条是我们恐惧的诱因:「不行,你一定要加上分号,不然下一行的二元操作符会引发问题的!」但是,如果下一行不想影响上一行,只要在行首一个分号就能解决问题。...如果你在 return throw break continue ++ 或 -- 后面一个 \n,那么语句就立即结束。...规范:如果为了团队代码的一致性,比如统一采用了 JSHint,那么也可以这样做。 糟糕的理由 「自动加分号(ASI)不靠谱。」 真的

    51010

    谈谈编码与规范

    一提到编码风格时,往往也会引起腥风血雨 比如: JavaScript 语句后面应该加分号? 缩进应该用 Tab、四空格还是两空格? 变量应该统一提前声明好还是就近声明?...段落前面真有必要空两格? 引号是否应该用 『』和「」? 破折号是一杠还是两杠? 例如、参考等词汇后,究竟需不需要冒号?...道理不用多说,对他人的风格我们懂得尊重,无论是在现实生活中,还是在写代码时。 当然,认可的规范还是得遵守。比如别在公共场合裸奔,别在一个 UTF-8 团队把文件存成 GBK 编码。...对待规范严格遵守。对待风格,懂得尊重。 #关键 一旦你拥有了开放的心态,一旦你开始懂得去欣赏他人的风格,你会发现世界是五彩缤纷的,你会开始越过一些表象,关注起一些真正值得关注的。...某个功能点是否应该用 CSS 而不是 JS 来实现? 这段代码是否忘了写单元测试? …… 一旦你开始能从他人的代码中,去纠结以上各种问题而不是代码风格时,你的功力经常就会大增。

    36910

    JavaScript Standard 编码规范

    所以这其中就有一些公司或者团队会使用一些代码规范,以保证无论是公司内部还是远程工作的同事都可以保持一致的代码规范,让代码不会过于凌乱。...JavaScript 不像 C/C++,C/C++ 有些语法特性制约了编码的规范,比如编译器要求每行代码末尾必须要有分号,而 JavaScript 则不然,有没有分号都可以正常通过,这就是一些很明显的差异...无分号 – 这没什么不好。不骗你! 行首不要以 (, [, or ` 开头 这是省略分号时唯一会造成问题的地方 – 工具里已加了自动检测!...详情 关键字后空格 if (condition) { … } 函数名后空格 function name (arg) { … } 坚持使用全等 === 摒弃 == 一但在需要检查 null || undefined...一定要处理 Node.js 中错误回调传递进来的 err 参数。

    66510

    使用ESLint+Prettier来统一前端代码风格

    分号还是不加分号?tab还是空格?你还在为代码风格与同事争论得面红耳赤? 正文之前,先看个段子放松一下: 去死吧!你这个异教徒!...js作为一门灵活的弱类型语言,代码风格千奇百怪,一千个人写js就有一千种写法。虽然js没有官方推荐的代码规范,不过社区有些比较热门的代码规范,比如standardjs、airbnb。...Prettier是一个能够完全统一你和同事代码风格的利器,假如你有个c++程序员转行过来写前端的同事,你发现你们代码风格完全不一样,你难道一行行去修改他的代码,就算你真的去改,你的需求怎么办,所以没有人真的愿意在保持代码风格统一上面浪费时间...//.eslintrc.js { extends: [ 'standard', //使用standard做代码规范 "prettier", ], } 这里有个文档,列出了会与prettier...[他们都在用] 你看,他们都在用了,你还在等什么,想变成异教徒被烧死,还不快行动起来。更多精彩内容请看官方链接

    2.7K20

    Javascript -- 基于Javascript范畴代码风格和规范的总结

    统一下代码的一些风格规范,其一是好看啊,看着爽呗, 其二是容易排错吧,可能还有后续 先学会看 目前市面上有一套完备体系的Javascript编程规范有哪些?...注释 对于文件最头部的注释 /** * @Name: template.js * @Description: js模板 * @Author: Jiangtao Zheng * @create:...不加主要是想偷懒,因为JavaScript会自动添加,加了主要是习惯了,记不住我还是吧!抓重点就是句末。 什么时候用单引号'',什么时候用双引号"",什么时候用模板字符串``?...; } 因为Javascript会自动添加句末的分号,导致一些难以察觉的错误。 用"==="还是"=="好?...浓缩是精华,少写一点你不开心

    1.4K20

    HTTP 规范中的那些暗坑

    $ & ' ( ) * + , ; = URI 的编码规则也很简单,先把非限定范围的字符转为 16 进制,然后前面分号。...三.X-Forwarded-For 拿到的就是真实 IP ? 1.故事 在这个小节开始前,我先讲一个开发中的小故事,可以加深一下大家对这个字段的理解。...但是,事实有这么简单? 3.攻击 从安全的角度上考虑,整个系统最不安全的就是人,用户端都是最好攻破最好伪造的。...相关思路和代码实现可参考 Egg.js 前置代理模式[8]。 5.一句话总结总结 通过 X-Forwarded-For 获取用户真实 IP 时,最好不要取第一个 IP,以防止用户伪造 IP。...3.一句话总结 大部分 HTTP 字段的 value 分隔符是逗号「,」 Cookie 不属于 HTTP 标准,分隔符是分号「;」 五、文章推荐 下面我推荐我的几篇文章: 一篇介绍了 webpack

    71420

    JavaScript 代码风格检测

    在日常开发中,每个人的代码编写习惯都不尽相同,比如有的人喜欢在代码末尾加上分号,而有的人不喜欢,在个人开发的项目中这并不是什么严重问题。...但在团队协作开发时,我们往往需要阅读其他人所写的代码,此时没有一个统一完整的代码规范,无法有效的控制代码质量,进而影响团队的开发效率。...通过引入代码规范工具,可以帮助我们保障一个团队的代码风格相同,并且能能避免一些因为格式上的问题,而出现的低级错误在新建 Vue 项目过程中,我通常会勾选 ESLint + Prettier 作为项目的语法检查方式...ESLint 的配置多达上百条,为了方便大家更容易的配置出自己心目中的规则,建议大家参考腾讯 AlloyTeam 团队的 ESLint 配置规则,打开 .eslintrc.js 文件,在 rules 里添加强制使用单引号和结尾不能使用分号两条规则...,随后添加使用单引号和结尾不加分号两条规则,具体代码如下所示:// .prettierrc.jsmodule.exports = { //使用单引号 singleQuote: true, //结尾不加分号

    1.1K21

    js代码规范

    前言 在js的代码开发中,我简单的总结出了以下规则,后面会陆续补充并且对规范进行分类。...(快捷键crtl+shift+f) 特别的,如果是匿名函数,应该在方法类型与小括号之间空格。...语句 : 9.1 简单语句 每一行语句最多只包含一条语句,吧分号放在每个简单语句的结尾。注意每个变量或者对象的赋值语句也是简单语句,应该以分号结尾。...js吧任何表达式都当一条简单语句,会导致一些隐性的错误。如果自己没加分号,那么js解释器会自动添加分号,按照自己能读懂的断句。 9.2 复合语句 也称为语句块,被包在大括号内部。...return 语句 当返回语句只有一条返回值的时候,不用小括号; 当返回语句多个值的时候,小括号。 当返回表达式的时候,应该控制在同一行,分号结尾。

    8.8K30

    如何制定企业级代码规范与检查

    TSLint 迁移到 ESLint 集成 背景 在这里会有读者问有现成的 TSLint 不用,为什么迁移到 ESLint 中集成?...解决的问题 使用 Prettier 如何避免与 ESLint 和 TSLint 的格式化冲突? Prettier 中不提供的格式化规则,ESLint 中提供的可以兼容一起使用?.../recommended', 'prettier', // 优先 prettier 中的样式规范 'prettier/@typescript-eslint', // 这里可以一些...quotes:编码规范字符串只能使用双引号,这里却使用了单引号; index.js 第1行第22个字符,报错编码规则为 semi:编码规范每行代码结尾必须加分号,这里没有加分号。...此时运行 npm run lint 会看到少了两条报错信息,并不是说编码规范变了,而是 Eslint 自动修复了基础错误,打开 index.js 文件,可看到字符串自动变成了双引号,并且代码末尾也加上了分号

    2K20

    前端架构师神技,三招统一团队代码风格

    这两种命名方式都正确,都符合规范,但是会造成团队的代码风格混乱,无法统一。 那为什么统一呢? 统一的好处有很多。比如我们统一规定:命名变量用下划线,命名方法用小驼峰。...如果你配置的编码规范比较复杂和严格,比如字符串必须单引号,代码结尾必须用分号,换行必须是 2 个 tab 且不可以用空格。...格式化之后,再看 index.js 文件变成了这样: const a = '13'; function add() { return '1'; } 看到变化了吧,双引号自动变成了单引号,行结尾自动加了分号...所以,ESLint 和 Prettier 定义的规范一致,不能冲突。...好吧,不够优雅,那还有优雅的解决方案? 答案是有。它就是我们的第三招神技 —— VSCode 强大的插件 VSCode 对我们前端来说都不陌生,是我们日日相伴的开发武器。

    1K20

    webpack-eslint

    之后在执行 eslint 的编码规范检查,那这个时候 eslint 检查的代码就是经过打包 JS 规范转换之后的代码,而我需要它帮我们检测当前正在编写的代码,而并不是转换之后的代码,那么这个时候就需要改造一下...master/docs/RULES-en.md 'standard' ], /* 扩展或覆盖规则 * */ rules: { // 强制语句结束添加,分号...图片进入到规则的页面当中就可以发现博主所配置的内容都在其中是存在的如下图所示:图片进入到 semi 当中,就可以发现,该页面当中的内容给出了几个示例就是说配置了 "always" (默认) 要求在语句末尾使用分号...代码的时候,那么 eslint 发现了错误内容之后就会自动的帮你修复所对应的错误内容,那么真的有这么神奇?...那么来让我们拭目以待吧,首先我们将 index.js 的内容改为不规范的内容:let name = "BNTang"console.log(name);然后利用 webpack 进行打包查看效果,发现打包成功

    21200

    【总结】1165- 前端团队代码规范最佳实践,个人成长必备!

    这两种命名方式都正确,都符合规范,但是会造成团队的代码风格混乱,无法统一。 那为什么统一呢? 统一的好处有很多。比如我们统一规定:命名变量用下划线,命名方法用小驼峰。...如果你配置的编码规范比较复杂和严格,比如字符串必须单引号,代码结尾必须用分号,换行必须是 2 个 tab 且不可以用空格。...格式化之后,再看 index.js 文件变成了这样: const a = '13'; function add() { return '1'; } 看到变化了吧,双引号自动变成了单引号,行结尾自动加了分号...所以,ESLint 和 Prettier 定义的规范一致,不能冲突。...好吧,不够优雅,那还有优雅的解决方案? 答案是有。它就是我们的第三招神技 —— VSCode 强大的插件 VSCode 对我们前端来说都不陌生,是我们日日相伴的开发武器。

    1.2K20

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

    2K20

    前端团队代码规范最佳实践,个人成长必备!

    这两种命名方式都正确,都符合规范,但是会造成团队的代码风格混乱,无法统一。 那为什么统一呢? 统一的好处有很多。比如我们统一规定:命名变量用下划线,命名方法用小驼峰。...如果你配置的编码规范比较复杂和严格,比如字符串必须单引号,代码结尾必须用分号,换行必须是 2 个 tab 且不可以用空格。...格式化之后,再看 index.js 文件变成了这样: const a = '13'; function add() { return '1'; } 看到变化了吧,双引号自动变成了单引号,行结尾自动加了分号...所以,ESLint 和 Prettier 定义的规范一致,不能冲突。...好吧,不够优雅,那还有优雅的解决方案? 答案是有。它就是我们的第三招神技 —— VSCode 强大的插件 VSCode 对我们前端来说都不陌生,是我们日日相伴的开发武器。

    67510
    领券