node.js到底要不要加分号浅析


Posted in Javascript onJuly 11, 2018

前言

一开始,关于在node.js句末不加分号,我是拒绝的。因为有时不加分号会报错。

我觉得node.js在语法层面挺拧巴的,要么就像PHP那样严格要求加分号,要么就像python一律不加分号。而node.js却表现出一副欲拒还迎的姿态,让人感觉就是既要拥抱变化,又要抱残守缺。

node.js到底要不要加分号浅析

加不加分号,这是一个问题

直到有一天我了解了加不加分号的场景,才终于释然

一言以蔽之:当代码是以 ( [ ` 这些符号开头时,就需要在代码之前加上分号,其他场景都不需要加分号
let msg = '加不加分号呢'

(function () {
 console.log('我是一个匿名函数')
}())

结果报错:

我是一个匿名函数
/Users/airmb/code/node/01/04.js:3
(function () {
^

TypeError: "加不加分号呢" is not a function
    at Object.<anonymous> (/Users/airmb/code/node/01/04.js:3:1)
    at Module._compile (module.js:652:30)
    at Object.Module._extensions..js (module.js:663:10)
    at Module.load (module.js:565:32)
    at tryModuleLoad (module.js:505:12)
    at Function.Module._load (module.js:497:3)
    at Function.Module.runMain (module.js:693:10)
    at startup (bootstrap_node.js:191:16)
    at bootstrap_node.js:612:3

正确的写法:

let msg = '加不加分号呢'

;(function () {
 console.log('我是一个匿名函数')
}())

同理,以 [ 或 ` 开头的代码应该这么写:

;['章北海', '罗辑'].forEach(function (item) {
 console.log(item)
})

;`
宇宙中究竟有多少个文明?
高级文明会怎么对待地球?
是友善地相处?
还是残忍地消灭?
或者只是安静地观察?
`.toString()

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
类似框架的js代码
Nov 09 Javascript
利用location.hash实现跨域iframe自适应
May 04 Javascript
js创建子窗口并且回传值示例代码
Jul 02 Javascript
复选框全选与全不选操作实现思路
Aug 18 Javascript
javascript计算星座属相(十二生肖属相)示例代码
Jan 09 Javascript
jQuery插件Slider Revolution实现响应动画滑动图片切换效果
Jun 05 Javascript
Bootstrap CDN和本地化环境搭建
Oct 26 Javascript
Require.js的基本用法详解
Jul 03 Javascript
vue 表单验证按钮事件交由父组件触发的方法
Dec 17 Javascript
Vue.extend实现挂载到实例上的方法
May 01 Javascript
在LayUI图片上传中,解决由跨域问题引起的请求接口错误的方法
Sep 24 Javascript
vue移动端模态框(可传参)的实现
Nov 20 Javascript
微信小程序实现红包功能(后端PHP实现逻辑)
Jul 11 #Javascript
Vue如何实现响应式系统
Jul 11 #Javascript
vue.js内置组件之keep-alive组件使用
Jul 10 #Javascript
小程序图片剪裁加旋转的示例代码
Jul 10 #Javascript
vue使用中的内存泄漏【推荐】
Jul 10 #Javascript
Vue脚手架的简单使用实例
Jul 10 #Javascript
vue自定义移动端touch事件之点击、滑动、长按事件
Jul 10 #Javascript
You might like
php 阴历-农历-转换类代码
2012/01/16 PHP
探讨如何在php168_cms中提取验证码
2013/06/08 PHP
PHP中的多种加密技术及代码示例解析
2016/10/20 PHP
PHP实现合并两个排序链表的方法
2018/01/19 PHP
YII2.0框架行为(Behavior)深入详解
2019/07/26 PHP
替代window.event.srcElement效果的可兼容性的函数
2009/12/18 Javascript
基于Jquery 解决Ajax请求的页面 浏览器后退前进功能,页面刷新功能实效问题
2010/12/11 Javascript
javascript中检测变量的类型的代码
2010/12/28 Javascript
javascript开发技术大全 第4章 直接量与字符集
2011/07/03 Javascript
js获取日期:昨天今天和明天、后天
2014/06/11 Javascript
JavaScript常用基础知识强化学习
2015/12/09 Javascript
理解javascript中的with关键字
2016/02/15 Javascript
js仿支付宝填写支付密码效果实现多方框输入密码
2016/03/09 Javascript
Node.js+Express配置入门教程详解
2016/05/19 Javascript
JavaScript仿flash遮罩动画效果
2016/06/15 Javascript
JavaScript ES5标准中新增的Array方法
2016/06/28 Javascript
jQuery实现的导航下拉菜单效果
2016/07/04 Javascript
网络传输协议(http协议)
2016/11/18 Javascript
集合Bootstrap自定义confirm提示效果
2017/09/19 Javascript
js动态添加表格逐行添加、删除、遍历取值的实例代码
2018/01/25 Javascript
vue-router 实现导航守卫(路由卫士)的实例代码
2018/09/02 Javascript
对 Vue-Router 进行单元测试的方法
2018/11/05 Javascript
小程序两种滚动公告栏的实现方法
2019/09/17 Javascript
微信小程序纯文本实现@功能
2020/04/08 Javascript
vue proxy 的优势与使用场景实现
2020/06/15 Javascript
[06:33]3.19 DOTA2发布会 海涛、冷冷、2009见证希望
2014/03/21 DOTA
Python标准库笔记struct模块的使用
2018/02/22 Python
Python3实现的简单工资管理系统示例
2019/03/12 Python
opencv导入头文件时报错#include的解决方法
2019/07/31 Python
python多环境切换及pyenv使用过程详解
2019/09/27 Python
python实现扑克牌交互式界面发牌程序
2020/04/22 Python
浅谈django框架集成swagger以及自定义参数问题
2020/07/07 Python
Django多数据库联用实现方法解析
2020/11/12 Python
Python json解析库jsonpath原理及使用示例
2020/11/25 Python
老师自我鉴定范文
2013/12/25 职场文书
2015年医药代表工作总结
2015/04/25 职场文书