JS的分号可以省掉吗?】的更多相关文章

摘要: JavaScript语言从设计之初就是考虑带分号的,使用不带分号的编码规则就要小心点啦. 背景 最近在项目中开始使用新的编码规范,一开始ESLint报一大堆错误,改得我想砸键盘,花了好些时间才适应,下面列出一些代表性的规则: 只能使用单引号 函数定义的圆括号和左大括号之间一定要有空格: function(args) { .. } import语句在大括号之后一定要有空格: import { fa, fb } from moduleC 不用分号!!! 起因 早上在实现一个功能的时候,写了一…
仅在}之前.一个或多个换行之后和程序输入的结尾被插入 也就是说你只能在一行.一个代码块和一段程序结束的地方省略分号. 也就是说你可以写如下代码 function square(x) { var n = +x return n * n } 但是却不可以写的像下面代码一样,这样就报错了哦 function area(r) { r = +r return Math.PI*r*r }//error 仅在随后的输入标记不能解析时插入 也就是说分号插入是一种错误校正机制.看代码说话 a = b (f())…
作者:尤雨溪链接:https://www.zhihu.com/question/20298345/answer/49551142来源:知乎著作权归作者所有,转载请联系作者获得授权. 没有应该不应该,只有你自己喜欢不喜欢.JavaScript 语法长得 C-like 不代表它本质上和 C 是一类语言,所有直觉性的 “当然应该加分号” 都是保守的.未经深入思考的草率结论.后来新设计的语言里可选分号的多得去了,光是 “可以加分号但是大家都不加” 的语言就有:Go, Scala, Ruby, Pytho…
时间:2016年12月15日 先讲讲基础语法: 大部分是来操作表单: js动态效果和数据交互(ajax?) js也有自己的API js大部分的DOM操作都是针对input的. 案例学习,对注册页面的简单校验,对于空值或者错误的值先弹框,后面再学习在页面上写数据. js是一种脚本语言,轻量级的,可插入到html页面中运行的语言,和java半毛钱的关系都没有. js有三大块内容: ECMAScript java的基础语法 BOM 浏览器对象模型 DOM 文档对象模型 以后jquery用的也很多,但是…
第二章词法结构 内容要点: 一.注释 1. //表示单行注释 2. /*这里是一段注释*/ 3.一般编辑器里加注释是:选中要加注释的语句,按 ctrl+/ 二.直接量 所谓直接量,就是程序中直接使用的数据量,比如: 数字.小数.字符串文本.布尔值.正则表达式直接量 三.标识符和保留字 标识符作用:标识符就是一个名字,在JS中,标识符用来对变量和函数进行命名,或者用做JS代码中某些循环语句中的跳转位置的标记. 标识符命名规则: 1.必须以字母.下划线(_)或美元符($)开始. 2.后续的字符可以是…
本K在经过三个静态站制作的狂风暴雨之后,终于开始了JavaScript的学习.作为一只从来没有正儿八经接受过计算机语言的小白,居然能够跟上浩哥的课程进度,我的内心都被我的才智震惊到了,果然本K是天生丽质难自弃,天生我材必有用哇,哦呵呵~ 咳咳,废话不多说,咱们来开始我们的JS小课堂,希望能够帮助到跟我一样的第一次接受计算机语言的同志们. 一.什么是JS. JavaScript,简称JS,它是一种基于浏览器的.基于对象的.用于事件驱动的脚本语言.简单来说,JS就是用来实现html页面上的一些动态效…
1.value和innerHTML没有联系,只是value是表单的一个特有属性,而innerHTML是通用的. 2.当从外部引入js文件时,该外部文件里面可以有多个方法,   html页面中的onclick只选中其中一个方法即可.     做法是在<script src="外部文件名.js"></script>     注意:外部脚本不能包含<script></script>标签.     3. js有四种方法显示数据:window.al…
今天发现js自动分号补齐的坑,来看如下两段代码: function Hello(){ return { name: ’JavaScript’ }; } alert(Hello()); //输出undefined function Hello(){ return{ name: ’JavaScript’ }; } alert(Hello()); //输出 [object Object] 略看代码,差不多,但是输出却不一样.仔细看看第一段代码return后面多了个换行.我们平时写后端代码也经常有会这样…
1.typeof和Object.prototype.toString typeof是js里面判断变量类型的一种方法,但这种方法没有Object.prototype.toString准确,前者有6种判断结果,分别是function,string,number,object,undefined,boolean,后者有8中判断结果,分别是[object Function],[object Number],[object String],[object Object],[object Array],[o…
1.JavaScript词法结构 所谓词法结构是指一套基础性规则,用来描述如何使用这门语言来编写程序,包括如下几项: ü 字符集unicode ü 区分大小写 (true和TRUE) ü 忽略空白字符(空格.制表符和换行符) ü 注释 ü 标识符和关键字(保留字) 解释: 命名:英文命名: 空白:由于js会忽略这些空白字符,那么我们在书写代码的时候,就可以更好的利用缩进.换行和空格更好的组织我们的代码,使其更加清晰.一般建议缩进4格 换行:js中一条语句以分号结束;但js中换行也表示一条语句的结…
<javascript权威指南>读书笔记——第二篇 金刚 javascript js javascript权威指南 今天是今年的196天,分享今天的读书笔记. 第2章 词法结构 2.1 字符集 JavaScript程序是用Unicode字符集编写. Unicode是ASCII和Latin-1的超集,支持几乎所有语言. ES3 要求支持Unicode 2.1及后续版本 ES5 要求支持Unicode 3及后续版本 2.1.1 区分大小写 JavaScript是区分大小写的. HTML 并不区分大…
第二章 语法结构 2.1 字符集 什么是字符集?各种字符集什么关系?unicode,utf-8是什么关系? 字符(Character)是各种文字和符号的总称,包括各国家文字.标点符号.图形符号.数字等.字符集(Characterset)是多个字符的集合,字符集种类较多,每个字符集包含的字符个数不同,常见字符集名称:ASCII字符集.GB2312字符集.BIG5字符集.GB18030字符集.Unicode字符集等.http://baike.sogou.com/v291629.htm 各种字符集的出…
代码一 for循环没有{}大括号(花括号),在for语句下面是一条语句. for(var i=0;i<3;i++) console.log(1,i); 上面的代码能无误输出: 1 01 11 2 代码二 那么,如果没有花括号的for循环下有多行语句呢? for(var i=0;i<3;i++) console.log(1,i); console.log(2) 输出: 1 01 11 22 他不会把第二行也循环. 代码三 for(var i=0;i<3;i++) console.log(1…
对于编写有效的JavaScript来说,这些并不是硬性的.快速的规则,而只是在源文件中维护一致的.吸引人的样式选择的规则.这对于JavaScript来说尤其有趣,它是一种灵活且多变的语言,允许多种风格的选择. 谷歌和Airbnb有两个最受欢迎的编写风格指南.如果我的工作是花费大量时间编写JS,那么可以先学习这两种方法. 以下是谷歌JS风格指南中我认为最有趣和相关的13条规则: 谷歌JS风格指南处理各种各样的问题,从激烈争论的问题(制表符与空格的比较,以及分号应该如何使用这个有争议的问题),到一些…
一:JavaScript 是脚本语言 JavaScript 是一种轻量级的编程语言. JavaScript 是可插入 HTML 页面的编程代码. JavaScript 插入 HTML 页面后,可由所有的现代浏览器执行. 二:JS解释器 独立的语言,浏览器具有js解释器 三:示例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <titl…
一 JavaScript的引入方式 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <!--<script>--> <!--alert("你好!")--> <!--</script>--> <…
javascript简介:js,轻量级的脚本语言,插入HTML页面中,用来实现网页的动态交换. 1.js的使用: 写入HTML输出:document.write("<p>This is a paragraph</p>"); 对事件作出回应:<button type="button" onclick="alert('Welcome!')">点击一下</button> 改变HTML内容:document…
编程语言的词法结构是一套基础性规则,用来描述如何使用这门语言来编写程序.作为语法的基础,它规定了诸如变量名是什么样的.怎么写注释,以及程序语言之间如何分隔等规则. 1. 字符集 JavaScript程序是使用Unicode(计算机科学领域里的一项业界标准)符集编写的.Unicode是ASCII和Latin-1的超集,并支持地球上几乎所有在用的语言.有关Unicode与JavaScript详解,可以看看大神的文章. 1.1. 区分大小写 JavaScript是区分大小写的语言.也就是说,关键字.变…
先来看一个例子: function get(){ return { a:1 } } var r=get(); console.log(r); 似乎r的值应该是{a:1},然而运行结果却是undefined,这就得从ecmascript的分号自动插入规则说起. js的自动插入分号有三个规则: 1,从左向右解析程序,当遇到不符合词法文法产生式的token,只要满足下面条件之一就在违规token前自动插入分号: a,至少有一个行结束符分隔了违规token和前一个token. b,违规token是} f…
在javascript工作中,我们几乎不会去省略分号:为了不必要的麻烦以及代码的规范,那么如果我们省略:会发生呢?预知详情请听下回分解. 看代码! 片段一: 1 var a 2 = 3 8 4 console.log(a); >>8 片段二: var a b = 8 console.log(a); >>undefined console.log(b); >>8 console.log(ab); >>Uncaught ReferenceError: ab is…
JS中会自动清除句子和句子之间的空格以及tab缩进, 这样就可以允许用户编写的代码更加随性和更加可读, 在该行代码解析的时候如果该行代码可以解析, 就会在该行代码最后自动填写分号,如果该行代码无法解析就会把该行代码和下一句代码合并, 直到代码可以解析: Js中如果一个语句以  (  [ / + -  开头,就有可能与上一句合在一起解析 也因为js会自动添加 “;” , 写js不注意就养成了不好的习惯, 代码有时候没事, 跑起来却出了错: 比如,少了一个分号就报错了: var a y = +a (…
javascript有自动添加分号的功能,但是不是所有情况都会自动添加,要区分: 1,如果语句独占一行 如果当前行内的语句能够被js正确解析,那么就会在句尾添加一个分号. (如何判断是否正确解析?你在控制台执行当前语句,不报错就可以-.-) 那么反之,如果当前语句不能被正确解析,那么就不会添加分号,而是将此行的末尾和下一行的开头连起来解析,所以就会产生其他问题. a=1 b=1; // 第一个分号可以省略 var a a = 1 // 解析为 var a; a = 1; 因为等号是没办法解析的,…
JS中会自动清除句子和句子之间的空格以及tab缩进, 这样就可以允许用户编写的代码更加随性和更加可读, 在该行代码解析的时候如果该行代码可以解析, 就会在该行代码最后自动填写分号,如果该行代码无法解析就会把该行代码和下一句代码合并, 直到代码可以解析: Js中如果一个语句以  (  [ / + -  开头,就有可能与上一句合在一起解析 也因为js会自动添加 ";" , 写js不注意就养成了不好的习惯, 代码有时候没事, 跑起来却出了错: 比如,少了一个分号就报错了: 运行下面代码 va…
Eclipse的Jar包解压出System.js里String与Boolean定义分号可有可无吗? org.eclipse.wst.jsdt.core_1.3.300.v201410221502\libraries\system.js/** * Object String() * @constructor * @extends Object * @since Standard ECMA-262 3rd. Edition * @since Level 2 Document Object Model…
我在使用js的时候可能发现一个现象:js语句结尾有时候有分号,有时候没有,没有的时候js代码也是能正确执行的. 到底要不要写分号?QAQ 转自博客园@winter-cn JavaScript自动加分号规则,有3条 当有换行符(包括含有换行符的多行注释),并且下一个token没法跟前面的语法匹配时,会自动补分号. 当有}时,如果缺少分号,会补分号 当程序源代码结束时,如果缺少分号,会补分号. 利用我自己的JS语法分析工具JSinJS(https://github.com/kissjs/JSinJS…
最近写了点node的项目,习惯了go语言的后面不带分号,那么js的项目,要不要带分号呢 首先,我们来了解下javascript的自动填充规则 在说要不要写分号之前,先了解一下javascript自动填补分号的规则. 在<javascript权威指南>中有一段话“如果一条语句以“(”.“[”.“/”.“+”.或“-”开始,那么它极有可能和前一条语句合在一起解释.”,写javascript的时候,如果每条语句都独自写成一行,是不需要写分号的,但是下一行如果遇到上面提到的符号,javascript可…
js中语句末尾可以不加分号, 很多时候在做练习或写几个页面时,我都是不会加的.虽然知道加了会好一点.但就是觉得很敲一句就要多按一次分号键(;)来加分号,而不加也不怎么样,然后就不想加了. 也听说在对js压缩于,会自动给语句加分号. 只是呢,从没认真考虑过如果分号会给js带来错误?什么情况下会导致错误? ——看了<走进javascript——不起眼的基础,值和分号>http://www.cnblogs.com/pssp/p/5215417.html 一文,我决定都给我的js语句加上分号. 难道是…
;function($,undefined) 是什么用处 ? ;(function($){$.extend($.fn... 现般在一些 JQuery 函数前面有分号 在前面加分号可以有多种用途: 1.防止多文件集成成一个文件后,高压缩出现语法错误. 2.这是一个匿名函数,一般js库都采用这种自执行的匿名函数来保护内部变量 (function(){})() 3.因为undefined是window的属性,声明为局部变量之后,在函数中如果再有变量与undefined作比较的话,程序就可以不用搜索un…
解决VSCode中使用vetur插件格式化vue文件时,js代码会自动加上冒号和分号 在设置中把"vetur.format.defaultFormatter.js": "prettier", 改为 "vetur.format.defaultFormatter.js": "vscode-typescript"…
1.(function(){alert("1")})()(function(){alert("2")})()报错 2.(function(){alert("1")})();(function(){alert("2")})()正确 没有分号分隔挨着的函数,就会出错.应该跟JS的解析有关.   脚本压缩,前端页面要减少脚本数量和脚本大小,所以要把一类的脚本压缩在一起,为了避免压缩时前一个脚本没有写最后一个分号而导致压缩后脚本不能使…