博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Js中分号使用总结
阅读量:6444 次
发布时间:2019-06-23

本文共 1237 字,大约阅读时间需要 4 分钟。

作者:尤雨溪

链接:https://www.zhihu.com/question/20298345/answer/49551142
来源:知乎
著作权归作者所有,转载请联系作者获得授权。

没有应该不应该,只有你自己喜欢不喜欢。JavaScript 语法长得 C-like 不代表它本质上和 C 是一类语言,所有直觉性的 “当然应该加分号” 都是保守的、未经深入思考的草率结论。后来新设计的语言里可选分号的多得去了,光是 “可以加分号但是大家都不加” 的语言就有:Go, Scala, Ruby, Python, Swift, Groovy...
至于说 “很难总结什么时候加不加”,其实真的很简单。真正会导致上下行解析出问题的 token 有 5 个:
括号(),方括号[],正则开头的斜杠/,加号+,减号-。我还从没见过实际代码中用正则、加号、减号作为行首的情况,所以总结下来就是一句话:
一行开头是括号或者方括号的时候加上分号就可以了,其他时候全部不需要。其实即使是这两种情况,在实际代码中也颇为少见。
另外,restricted production 这个东西(也就是导致 return 后面换行会自动插入分号的机制),不管你加不加分号你都是得搞懂了才能不被坑的,和加不加分号没有什么关系。
更多细节,可以看我曾经给过的一个 talk:
最后,上点代码好了,Vue.js 的代码全部不带分号:
另外说到工具,我确实写了一个,全自动帮你批量添加或者删除分号: 做成 Git pre-commit hook,选择你自己喜欢的风格就可以。
 
总结:
1. 自己书写代码的时候: 一条完整的语句加分号, 函数声明不加分号 
// 1.  加分号的语句var jason = "zeng";var eason = function () {      // 其他语句...};(function($) {      // 其他语句 ...})(jQuery);++a;b++;// 2. 不加分号的声明function myfunction() {      // 其他语句 ...}

2. 结合别人代码的时候: 发现他人有不加分号的特点的时候, 自己在在语句前面加分号

;(function($) {     // 其他语句 ...})(jQuery);;++a;

3. return 不能单独占一行

var g1 = function () {     return "test";  }var g2 = function () {     return {        a: 1,        b: 2    }  }var g3 = function () {     return [         "one",         "two"     ];}

 

 

转载于:https://www.cnblogs.com/ZengYunChun/p/6189512.html

你可能感兴趣的文章
Javascript的this用法
查看>>
Fiddler下Firefox提示“您的连接并不安全”的解决办法
查看>>
mint 安装emacs 24.3源码安装
查看>>
性能细节1
查看>>
解决mysql图形管理器乱码问题
查看>>
mysql :error while loading shared libraries: libaio.so.1: cannot open shared object file:
查看>>
使用FUSE挂载HDFS流程及错误集锦
查看>>
SQL转换为日期的做法
查看>>
安装python模块paramkio报错 error: command 'gcc' failed with exit status 1
查看>>
1.1Python快速入门
查看>>
HTML5 canvas 标签介绍:定义图形
查看>>
界面编程-2
查看>>
Android系统的开机画面显示过程分析(1)
查看>>
scanf和缓冲区的一切
查看>>
Linux修改支持高并发TCP连接数
查看>>
自学鸟哥linux服务-samba文件共享服务
查看>>
[笔试面试]单链表如何检测有环,环入口,环长,环前长度——快慢指针法(百度JAVA面试)...
查看>>
为啥使用HTML5
查看>>
PXE无人值守自动安装RHEL5
查看>>
搭建ELK日志分析平台
查看>>