ASI 在写JS之前,我一直在写Python,习惯了没有分号的代码。 刚好,JS为我们提供了 自动分号插入 Automatic Semicolon Insertion!...> node 1.js /root/1.js:2 (function log() { ^ TypeError: 1 is not a function 提示显示1不是一个函数,看来引擎把代码理解成了这个样子...> node 1.js /root/1.js:2 [a, b] = [b, a] ^ ReferenceError: Cannot access 'b' before initialization...总结 实际上,完全不用为了ASI在一些情况下导致错误而每行都加上一个分号。...对于我目前遇到的这两种情况,可以总结一下,如果一行的开始是一个(或者[,那么再上一行你需要手动加上一个分号,至于其他的情况,完全不用考虑分号~ 还可以参考一下尤大的这篇回答 https://www.zhihu.com
在这之前我们需要先理解ASI(自动分号插入机制)。...的,而且必须加分号,否则编译就不通过了。...但JavaScript由于存在ASI机制,因此允许我们省略分号。...ASI机制不是说在解析过程中解析器自动把分号添加到代码中,而是说解析器除了分号还会以换行为基础按一定的规则作为断句的依据,从而保证解析的正确性。 首先这些规则是基于两点: 1....对于省略分号后代码压缩工具会出问题,jslint会对无分号的代码报warning等问题,贺师俊已经在回复中对其进行详细说明了。
第一反应就是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/
i++ // <-- semicolon optional Optional: After statements 可选: 在语句之后 Javascript 中的分号用于分隔语句...,但如果语句后面跟一个换行符(或者{ block }中只有一个语句) ,则可以省略该分号。...避免 你不应该在一个右括号后面加上分号。...一个重要的特点是: 在 for 循环的()中,分号只放在第一个和第二个语句之后,而不放在第三个语句之后: for (var i=0; i < 10; i++) {/*actions*/}
一开始,关于在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('我是一个匿名函数
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Do...
按图打开vscode中设置 vscode setting 添加 "vetur.format.defaultFormatterOptions": { "pr...
立即执行函数,经常使用,但是你确定了解它嘛? 下面,就来看看吧! 1、定义 立即执行函数,又称IIFE....js中,加上分号才会判断它是个语句,平时我们没有加分号,js会自动为我们加上分号 如:console.log('hahha') js 解析成 console.log('hahha'); 而括号太多时,...js不能正确识别,所以,就要我们自己加分号; (function (){ console.log('Function Expression'); }) () (function (){ console.log...上面的代码会 报错:Uncaught TypeError: (intermediate value)(...) is not a function at :4:1 原因:js...('Function Expression'); }) (); 为防止其它开发者未打分号,导致错误,所以可以在前面加上分号: ;(function (){ console.log('Function
我正想跟这个同学说,让他把行号或是文件名都截图出来呢,这时他又发来了第二个截图, 虽然依然是没有行号或文件名,但我一眼就看到了引起bug的原因,就是后面的分号是中文的。...但报错信息中的提示已经很清楚了,就是最后的中文分号嘛。 //////// 刚才说了,当时我不在电脑跟前,也就是说,我看到的他的微信发给我的信息,已经是过了有一会了。 我就问他情况怎么样了?...反正大意就是,他问我怎么看出来是中文分号的,我说“看的多了”。真的就是这样,各种报错信息看的多了,就知道什么bug都是怎么解决了。这怎么积累呢?就是多看,多练。...就说今天这个bug的情况,如果他不写不练,肯定不会有中文分号引起bug的这个事情,那最后反正是他明白了引起bug的中文分号的原因,那这就是排除bug的经验的积累。...你说怎么教你们嘛,难道要我故意把js代码写错,然后让你们去查么?不能这样啊。不管多晚,不管什么时候,只要你们有不明白的地方,都可以微信问我。随时解答,我开车的时候除外。
没有分号。古时候,一行完整的代码用分号来分隔。后来大家觉得分号已经没有必要了,也基本没有人会在一行写几行代码了。新的语言一部分是柔和派,分号变为可选;另一部分激进派直接去掉了分号。...Kotlin 属于前者,如果你写一个分号,IDE 爸爸会告诉你,没得必要,但不会报错。如果你故意把两行代码写成一行,中间加一个分号,这个分号就是必要的。 函数的声明通过 fun 关键字。欸?...,而不再需要写成两行了。 **println 代替了 System.out.println **。学 Java 的时候大家应该都吐槽过,写个打印好废键盘啊!...,其他地方都需要加对象才能调用一个方法(类也是对象嘛)。 所以 Kotlin 是怎么做到不用指定对象也能调用方法呢?是有顶层声明(top-level declaration)的特性。...是不是觉得要写个 Hello world 也要懂这么多很费劲呢?其实要弄懂 Java 的 Hello world 也很费劲的,只是你已经过去那个初学的阶段了。
button> //这里是插件的代码;我为了方便都写到一个html中了;请把这个script标签中的内容单独写在一个js...号(叹号)或者;(分号)这不是写错了,为了防止那个二货写的js结束没有分号;而可能发生报错 /* ;function(win,doc,$,undefined){ }(window...的值到 div里 var addHtml = function(demo,btn){//插件名,调用的时候直接new一下插件名就行了并传参数或者传对象(一般这个函数名手写字母大写比较好,构造函数嘛,...demo-1","add-1");//这里是实例1调用插件的代码 new addHtml("demo-2","add-2"); //这里是实例2调用插件的代码 //是不是明白为什么要写插件了
在前端工作中,我们需要写很多的javascript代码。我本人对JS一窍不通。因此,在逐渐的学习jquery。这还是比较简单的,可以完成我日常工作中的大多数需求。 但是在学习中,要保持良好的习惯。...我的个人总结如下: 善用变量,尤其是对DOM结构中的ID以及CLASS 多写注释,自己不熟,前面写后面忘,所以要多谢注释 善用函数,对重复运用的代码写成函数,多处调用 多写分号,很多分号可以省略,但还是写上为好...但是可以搞清楚它的原理 命名清楚,英文或者拼音,但一定要清楚,不能让人云里雾里 外调JS压缩,多处共用且无需修改的JS压缩处理,可以减少流量 内部JS不压缩,里面可能会使用的程序输出,因此不要压缩,避免出错
js自动插入分号规则 a. 什么时候需要写分号 什么时候不能写分号 要有换行符,且下一个符号是不符合语法的,那么就尝试插入分号。...有换行符,且语法中规定此处不能有换行符,那么就自动插入分号。 源代码结束处,不能形成完整的脚本或者模块结构,那么就自动插入分号。...之间不能插入换行 凡是async关键字,后面都不能插入换行 箭头函数的箭头前,也不能插入换行 yield之后,不能插入换行 带换行符的注释也被认为是有换行符 一行开头是括号或者方括号的时候加上分号就可以了...以数组开头的语句 var a = [[]]/*这里没有被自动插入分号*/ [3, 2, 1, 0].forEach(e => console.log(e)) C....`Template`.match(/(a)/); console.log(RegExp.$1) -附录. void操作 功能: 因为undefined在js中不是保留字 所以 function
每个语句都必须以分号结尾,不要依赖编译器自动插入分号。...尽管我无法理解为什么有人会反对加分号,就像“tab 和 空格”争论一样。无论怎么样 Google 是站在加分号这边的。...// Don't do this kind of thing yet://------ lib.js ------export function square(x) { return x * x;...}export function diag(x, y) { return sqrt(square(x) + square(y)); }//------ main.js ------import...如果你的代码遵守此规则,可大大增加代码的可阅读性,但需要注意的是,如果常量是函数,需要写成驼峰。
全局引入 将外部的css文件放到style文件下,引入外部文件只需在main.js文件中 import '@/style/reset.css' 我引入的是清除默认样式的css文件 2..../assets/iconfont/iconfont.css';这个分号一定要写,要不会报错 2....局部引入绝对路径 @import '@/styles/scroll-bar.scss';这个分号一定要写,要不会报错 注意 使用@import引入样式文件
其实就是简单的记了一下流水账,这一节咱们来“设计一下它的js的结构”。 设计一个app应用的Js的结构,往大了说,这就是前端架构的设计啦。...往小了说呢,只不过是先在脑子里,或是纸上,把我们要写的Js,按功能先分类归纳而已。 嘛,先画这么多吧。我自己看着这图,觉得细节上可能会有调整,但大方向应该没有问题。...--> 问题嘛,我觉得, 1、在具体UI交互的操作上,可能会有一些方法调用上的反复; 2、歌曲其实是“流”,js操作“流”好久没写了,估计到时我得看看; 这个环节,其实是报工期的时候会有。 明天再具体写js实现。
eslint-plugin-react eslint-plugin-import eslint-config-airbnb --save { "extends": "airbnb" } 规则特点 不去掉分号...// Customize your rules }, }; google 安装依赖包 npm install --save-dev eslint-config-google 规则特点 不去掉分号...使用prettier的扩展规则有两种方式: 注意:不需要写extends:"prettier",光下面的配置即可 方式一: { "plugins": ["prettier"], "rules":...注意: 由于编辑器等自动格式化配置设置了走.prettierrc.js文件,建议写覆盖的配置,写在这里,不要写在.eslintrc.js配置中,否则可能得不到想要的结果。...arrowParens: 'always', // 每个文件格式化的范围是文件的全部内容 rangeStart: 0, rangeEnd: Infinity, // 不需要写文件开头的
下面介绍JS中For循环的重难点。 2 知识点 难点:1.在用初始变量遍历对象0bject时,增加初始变量的值可以用i++,也可以用i=i+1。 2.当i++放的位置不同时,会影响最后的结果。...3.i++是可以省略的,但是一定要加分号;相当于i++这个位置可以空着,但是要写个分号来表示它存在。...同时我们也还要注意JS 中的For循环和While循环,两者之间既有相同点,也有不同点,这些都需要自己去学习和总结。
编写个简单的sh文件 通过for do循环让i+1 文件名对应上就可以的- -执行时要传入文件名称以及需要导入的数据文件的路径,之所以要传进去 也是为了方便项目后续更改目录嘛~ ?...老版本是可以这样执行的,因为是个定时job,每次导入前必将先删除原有的集合嘛~ 折磨得不要不要的。。...貌似要写个js脚本。。。还请路过大神赐教。。
1.1 VueJS介绍 Vue.js是一个构建数据驱动的 web 界面的渐进式框架。Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑 定和组合的视图组件。...MVVM 就是将其中的View 的状态和行为抽象化,让我们将视图 UI 和业务逻辑分开 MVVM模式和MVC模式一样,主要目的是分离视图(View)和模型(Model) Vue.js 是一个提供了 MVVM...', //表示当前vue对象接管了div区域 data: { message: 'hello world' //注意不要写分号结尾...Vue.js 都提供了完全的 JavaScript 表达式支持。 {{ number + 1 }} {{ ok ?
领取专属 10元无门槛券
手把手带您无忧上云