分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 教程案例

JS 代码中到底加不加分号

发布时间:2023-09-06 02:03责任编辑:蔡小小关键词:暂无标签

背景

在写自动执行函数时

vm.$watch(‘datas‘, function() { ???console.log(vm.datas);})(function () { ???console.log(‘test‘);})()

出现莫名错误:

Uncaught TypeError: vm.$watch(…)(…) is not a function

解决方法:

vm.$watch(‘datas‘, function() { ???console.log(vm.datas););(function () { ???console.log(‘test‘);})()

一个分号搞定。

自此,又引出 JavaScript 代码中要不要加分号的经典话题

分号

在 C 语言中,分号是语句结束的标志,在语句结束的地方一定要以分号结束。而 JavaScript 的分号却是可选的,若语句都各占一行,则可以省略分号。

ASI 机制(Automatic semicolon insertion)

JavaScript 中的 ASI 机制,允许我们省略分号。ASI 机制不是说在解析过程中解析器自动把分号添加到代码中,而是说解析器除了分号还会以换行为基础按一定的规则作为断句的依据,从而保证解析的正确性。

ASI 规则

  • 新行并入当前行构成非法语句时,自动插入分号
  • continuereturnbreakthrow 后自动插入分号

    return => return; 
    a+b a+b;

  • ++-- 后缀表达式作为新行开始,会在行首自动插入分号
  • 代码块的最后一个语句会自动插入分号

注意

  • 新行以 ( [ / + - * % , . 开始,很容易与上一行未加分号的代码成整体而一起解析,这明显不是我们想要的结果

结论

为增强代码可读性,减少歧义,个人意见是在语句结束时加上分号

PS:

    • 不要将 ++ 或 -- 放在同一行
    • 如果 return 后有参数,不要将参数放在独立的行
    • 不要将括号的开始放在新的一行,理由为上一条

JS 代码中到底加不加分号

原文地址:https://www.cnblogs.com/liluxiang/p/9285003.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved