函数前面的分号是什么意思? [复制]

2023-12-03

我正在查看一个开源项目,并看到类似这样的内容:

;(function(){
    // codes here
})()

我想知道那里的分号是否有特殊含义?


这是因为 ASI(自动分号插入)允许您避免使用分号。

例如,您可以编写这样的代码,不会出现错误:

var a = 1
a.fn = function() {
    console.log(a)
}

看?没有一个分号。

但是,也有不插入分号的情况。基本上,在实际项目中,有一种情况不是这样:当下一行以括号开头时。

javascript 解析器会将下一行作为参数,并且不会自动添加分号。

Example:

var a = 1
(function() {})()
// The javascript parser will interpret this as "var a = 1(function() {})()", leading to a syntax error

为了避免这种情况,有几种方法:

  • 在以括号开头的行的开头添加分号(这是在您显示的代码中完成的)
  • 使用以下结构:

    !function() {}()

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

函数前面的分号是什么意思? [复制] 的相关文章

随机推荐

  • [数组/对象]中的[文字]是什么意思?

    以下语法的含义是什么 1 in 1 2 3 5 我知道它不会在数组中搜索 1 但它有什么作用呢 我见过它在循环中使用 for var i in testArray 但也看到过它本身被使用 这是否意味着检查文字是否是另一个操作数的数组或对象中
  • 静态数据成员未通过套接字在对象发送中发送

    我想为两个客户端发送相同的对象 我使用对象写入非共享方法并读取非共享方法 我的对象的类是 package servidor import java io Serializable public class Token implements
  • 从不同数据库导入的语法 - MS Access

    我正在尝试 基本上 从一个后端到另一个后端进行自动行复制 因为后端正在使用但尚未完全开发 一些表已完成 其他表未完成 最后将完整的数据添加到更高级的数据库中 当日 我想知道 SQL 语句的语法是什么 INSERT INTO tblMyBet
  • 为什么编程中需要指针? [关闭]

    很难说出这里问的是什么 这个问题模棱两可 含糊不清 不完整 过于宽泛或言辞激烈 无法以目前的形式合理回答 如需帮助澄清此问题以便重新打开 访问帮助中心 使用任何语言 例如 C 语言 编写代码时使用指针是否重要 它会占用更多内存吗 Thank
  • F# UnitTest 项目中的 AutoFixture 未在测试资源管理器中显示单元测试

    我有一个 Visual Studio 2012 项目并安装了以下 NuGet 包 使用最小起订量进行自动模拟的 AutoFixture Autofixture 与 xUnit net 数据理论 汽车夹具 Moq xUnit net 扩展 x
  • 有没有更短的方法来实现这个功能?

    B front x 给定一个字符串列表 返回一个按排序顺序包含字符串的列表 但首先对所有以 x 开头的字符串进行分组 例如 mix xyz apple xanadu aardvark 产生 xanadu xyz aardvark apple
  • 如何使用 Highcharter 创建两个独立的钻取图?

    我正在开发包含两个向下钻取图表的闪亮应用程序 两者都从同一数据文件读取 唯一的区别是第一个图表执行求和 而第二个图表获取平均值 问题是无论我做什么改变 两个图表仍然冲突 这是使用的代码 cate lt c Furniture Furnitu
  • Rails 4 WYSIWYG Bootsy 不显示格式

    我刚刚按照安装说明进行操作靴子宝石页面在我保存并查看帖子内容之前 一切看起来都很好 视图中的输出如下所示 h2 Header h2 h3 Sub head h3 br img alt Thumb 1320236280147 src uplo
  • 使用来自另一个“类接口或预期枚举”的一个包时出错

    package students import java util public class p1 private int n1 2 int n2 3 protected int n3 5 public int n4 7 package s
  • 从包含键路径的字符串中获取json值[重复]

    这个问题在这里已经有答案了 我有一个输入数组 路径如下 var path foo bar baz 而且我有一个对象 var obj foo bar baz cake notbar another value 我想更改路径中的 baz 值 我
  • 如何向 MapBox GL JS 地图添加标记?

    我正在尝试将标记添加到 HTML Javascript 地图中的 MapBox GL JS 地图 我尝试构建一个小示例 这是我的代码
  • 如何在 MATLAB 中合并这些数据?

    在下面的示例文本文件中 如果第 3 列包含1那么第 2 列对应的数据应该与第 2 列中前一行的数据合并 例如 40第 2 行中应添加到10在第 1 行中 则第 2 行应设置为0 如修改后的示例文本文件所示 我下面的代码的问题是它只记录当前数
  • MongoDB GridFS 对于相对较小的文件来说文件大小很大

    我正在做一些测试 看看我们是否可以在 MongoDB 上使用 GridFS 来存储未来应用程序的文件 我正在使用 10gen 的 C 驱动程序将 80Mb 文件 上传 到数据库中 第一次添加效果很好 大约花费了 3 秒 这在我的测试机上还算
  • Notepad++:在某些字符串匹配后插入空白新行

    我想在之后插入新行 4 notepad 中整个文档的选项 由于他涉嫌参与间谍 1 abc 2 自卫队 3 阿斯夫 4 聚合 当校长进来时班级里 所有的朋友都静静地 1 dfg 2 高中生 3 可持续发展目标 4 现场环境 下面的表达式不起作
  • string.charAt(x) 还是 string[x]?

    我有什么理由应该使用string charAt x 而不是括号符号string x 括号表示法现在适用于所有主要浏览器 IE7 及更低版本除外 Bracket Notation Test String1 6 charAt Implement
  • 改造和 orm 库抛出 StackOverflow

    我尝试使用 2 个库 square Retrofit 休息客户端 萨蒂亚 糖 db orm retrofit use gson 类也如此 public class Book String name public Book String na
  • JQuery 查找 img src

    使用 JQuery 我希望能够获得 img src 链接 tbody tr td 160 img src https this link here com width 26 height 24 alt border 0 td 我努力了 va
  • 如何删除开发人员工作区

    一名开发人员离开了 他的工作站现已格式化 TFS 认为他仍然检出文件 显然他永远不会签入它们 我如何告诉 TFS 忘记它 如何 撤消其他用户的签出 如何 删除工作区
  • 以编程方式进行 gridview 编辑模式

    我有一个基本的 gridview 我将 SQL 存储过程的代码后面的数据绑定到该视图
  • 函数前面的分号是什么意思? [复制]

    这个问题在这里已经有答案了 我正在查看一个开源项目 并看到类似这样的内容 function codes here 我想知道那里的分号是否有特殊含义 这是因为 ASI 自动分号插入 允许您避免使用分号 例如 您可以编写这样的代码 不会出现错误