"2019-02-03 回答 有时候是不需要的,有时候是需要的。这主要取决于 JavaScript 的自动插入分号的机制,解释器会在大多数语句后自动添加分号。也就是说在大多数情况下,我们是不需要分号的。 但是,在某些情况下我们是需要分号的。通常块元素开头是不需要分号的,但是下面代码片断就需要分号: 以 [ 开头的行 co .."

JavaScript 是否需要分号?

2019-02-03

回答

有时候是不需要的,有时候是需要的。这主要取决于 JavaScript 的自动插入分号的机制,解释器会在大多数语句后自动添加分号。也就是说在大多数情况下,我们是不需要分号的。 但是,在某些情况下我们是需要分号的。通常块元素开头是不需要分号的,但是下面代码片断就需要分号:

  1. [ 开头的行
const previousLine = 3
;[1, 2, previousLine].map(n => n * 2) 
  1. ( 开头的行
const previousLine = 3
;(function() {
  // ...
})() 

在上面的例子中,解释器不会在 3 之后插入分号,因此会把 3 看为一个对象去尝试访问他的属性或者调用他的方法,这样就会产生对应的错误 Cannot read property 'map' of undefinedUncaught TypeError: 3 is not a function

加分回答

返回总目录

每天 30 秒

  • B3log

    B3log 是一个开源组织,名字来源于“Bulletin Board Blog”缩写,目标是将独立博客与论坛结合,形成一种新的网络社区体验,详细请看 B3log 构思。目前 B3log 已经开源了多款产品:PipeSoloSymWide 等,欢迎大家加入,贡献开源。

    2405 引用 • 3795 回帖 • 623 关注
  • 30Seconds

    精选的常见前端问题集,帮助您踏踏实实走好每一步。

    英文原文请看 30-seconds

    133 引用 • 190 回帖 • 5 关注
  • JavaScript

    JavaScript 一种动态类型、弱类型、基于原型的直译式脚本语言,内置支持类型。它的解释器被称为 JavaScript 引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在 HTML 网页上使用,用来给 HTML 网页增加动态功能。

    338 引用 • 972 回帖 • 1000 关注
  • 面试

    面试造航母,上班拧螺丝。多面试,少加班。

    209 引用 • 1141 回帖 • 472 关注
感谢    关注    收藏    赞同    反对    举报    分享
6 回帖    
请输入回帖内容...
  • Eddie    

    我想起浏览器会自动脑补 html 标签,自动补全这样子。

    1 回复 
    感谢    赞同    反对    举报    分享       评论    回复
  • Vanessa            

    智能帮你校对。但是源码还是不会变

    感谢    赞同    反对    举报    分享       评论    回复
  • iTanken      

    强迫症,必须加分号,不加不舒服 huaji

    1 回复 
    感谢    赞同    反对    举报    分享       评论    回复
  • Vanessa            

    最后一个逗号会加么?

    1 回复 
    感谢    赞同    反对    举报    分享       评论    回复
  • iTanken            

    逗号不会,最后加逗号 IE 可能会报错

    1 回复 
    感谢    赞同    反对    举报    分享       评论    回复
  • Vanessa            

    上次和同事争论了好久逗号的问题。现在感觉已经没精力了,format 后有就有,没有就没有了。。。

    感谢    赞同    反对    举报    分享       评论    回复
请输入回帖内容...