设为首 页  加入收藏  联系我们    
程序代码快速生成源码生成
android|nodejs vue react mern Express koa2 小程序 -> 毕业设计 -> js javascript 不用写 ; 时要不要省略分号? 退出登录 用户管理
客服联系方式:
 
 
    特色优势
 
软件简介:
本站尽最大可能将系统开发过程,系统流程分析,系统数据库表结构,免费提供您参考阅读!请下载演示参考系程序细节,更多详情请咨询客服!
ASP毕业设计 | VB毕业设计 | JSP毕业设计 | VC毕业设计 | 文献参考 | C#毕业设计 | vb.net毕业设计
Delphi毕业设计 | Asp.NET毕业设计 | 技术经验 | VBA (Access) 毕业设计 | VBA (Excel) 毕业设计 | PB毕业设计 | android(安卓)毕业设计
Nodejs ES6前端全栈 vue react 小程序 express koa2 mern | python(web开发Django框架) | html5游戏开发 | Jquery毕业设计 | XSLT毕业设计
重点:
转:https://zhuanlan.zhihu.com/p/22998282

写javascript时要不要省略分号?

在打算写这篇文章之前,我是一个分号党,在写这篇文章之后,可能会转为无分号党了。之前是写分号是编辑器语法较检所养成的强迫症,现在观念的转变,是因为看了不少大神的讨论后,觉得javascript语句后写分号除了增大工作量外,意义不大。

javascript自动填补分号的规则

在说要不要写分号之前,先了解一下javascript自动填补分号的规则。

在《javascript权威指南》中有一段话“如果一条语句以“(”、“[”、“/”、“+”、或“-”开始,那么它极有可能和前一条语句合在一起解释。”,写javascript的时候,如果每条语句都独自写成一行,是不需要写分号的,但是下一行如果遇到上面提到的符号,javascript可能会与下一行合并解释。其中以“/”、“+”和“-”开头的语句在实现项目中比较少见,以“(”和“[”开头的则非常常见。下面各找了一个例子来说明。

以“(”开头的情况:

a = b
(function() {
    
})()

javascript会解释成:

a = b(function() {
    
})();

以“[”开头的情况

a = function() {

}
[1,2,3].forEach(function(item) {
    
});

javascript会解释成:

a = function() {
}[1,2,3].forEach(function(item) {
    
});

以“/”开头的情况

a = 'abc'
/[a-z]/.test(a)

期望的结果为true,但是javascript会解释成,接着就报错了:

a = ‘abc’/[a-z]/.test(a);

以“+”开头的情况

a = b
+c

javascript会解释成

a = b + c;

以“-”开头的情况

a = b
-c

javascript会解释成

a = b - c;

如果在return、break、continue、throw等关键字后面换行,javascript会在换行处填补分号。如:

return
{
    a: 1
}

会解释成:

return;
{
    a: 1
}

如果“++”或“--”运算符作为表达式的后缀时,表达式应该写在同一行,否则也会解释有误

例如:

x
++
y

会解释成:

x;
++y;

而不是

x++;
y;

要不要写分号

对于究竟要不要写分号这个问题,我之前也没有细想,看到编辑器有提示就写了,也没有想过写与不写有什么区别,甚至在写这篇文章时,思路还是要将写分号当作团队代码的规范。后来看到知乎上vuejs的作者尤雨溪和前端大神贺师俊的回答后,我对写分号的想法完全颠覆了。

对于总是写分号的缺陷,贺思俊的总结很到位,他总结的3点缺陷如下:

  • 人总是有可能忘记写分号。ASI(分号自动插入机制)导致无法区分是无意中忘记还是有意不写(代码折行)。

  • “总是写分号”并不能完全解决ASI缺陷(如return后换行会自动插入分号)。

  • “}”后是否要加分号需要回溯到对应“{”之前进行语义判断(是否是函数表达式),成本远高于前置分号判断(只要对行首字符进行token判断:是否是 [ ( + - / 五个符号之一)。

而对于上面提到的五种符号需要加分号的情况,完成可以用工具来帮我们自动完成,现在看来写分号除了满足强迫症外,好像真的没有什么必要了

不能下载计算机源码, 毕业设计论文资料,
大作业!报告错误,谢谢
 
找到您需要的资源啦!?本站所有软件高速免费下载,记得下次再来哦,毕业设计免费获取,3Q2008.Com您下载的首选
  软件大小:未知大小 下载次数:0  
  更新时间:2017/12/25 14:39:03  

输入您的题目信息关键字,查询更多

关于本站 - 网站帮助 - 广告合作 - 下载声明 - 友情连接 - 网站地图 - 管理登录
Copyright ©2020 3Q2008.Com 网络
 

定做服务操作流程 主站   关于我们   联系程序员   企业建站 

辽ICP备2024022997号-3 
  业务(企业网站制作,系统制作,毕业设计资料辅导,系统开发 ,项目定制,辅导讲解,算法分析)
联系方式:jjwebCoder(圈A)163.Com    QQ:63353282    Tel:(86) 0411-84062008
程序员代做各个类别语言的计算机毕业设计及论文(本站出售计算机毕业设计源码及论文) 。
Copyrights ©3Q2008.Com 网站制作 3Q2008网络
网站制作,系统开发 记得http://www.3Q2008.Com http://www.3Q2008.Cn http://www.99wk.Com
首页 |  定制流程 |  检索数据 |  联系我们 | 关于本站 |  Top △