当前位置: 首页 > 面试题库 >

JavaScript功能前的感叹号有什么作用?

狄鸿禧
2023-03-14
问题内容

!function () {}();


问题答案:

JavaScript语法101。这是一个 函数声明

function foo() {}

请注意,这里没有分号:这只是一个函数 声明 。您将需要调用foo()来实际运行该功能。

现在,当我们添加看似无害的感叹号时:!function foo() {}它将变为 表达式 。现在它是一个 函数表达式

!单独不会调用函数,当然,但我们现在可以把()结尾:!function foo() {}()它的优先级高于!并立即调用函数。

因此,作者正在做的是为每个函数表达式保存一个字节。更具可读性的书写方式是:

(function(){})();

最后,!使表达式返回true。这是因为在默认情况下所有IIFE回报undefined,这给我们留下了!undefined这是true。不是特别有用。



 类似资料:
  • 从…起https://source.dot.net/#System.Private.CoreLib/Hashtable.cs,475: 它看起来像两个零原谅运算符。有相关文件吗?

  • 问题内容: 查看数据库中的V $ SQL,我刚发现一个奇怪的查询,看起来像: 有人知道语法@!的含义吗? 我以前从未在Oracle中见过类似的东西 谢谢 问题答案: 这是源自远程数据库的查询。使用@DB_NAME语法在远程数据库上的查询中引用了您在V $ SQL中看到此查询的数据库 远程数据库已将查询推送到您的数据库中以便执行,但是要回答该查询,您的数据库需要从远程数据库中拉回一些信息。这是@!进

  • 我最近阅读了一些使用将变量转换为布尔值以在if语句中进行评估的代码。这对我来说似乎有些多余,因为无论如何都会评估变量的布尔值。这样做有什么性能优势吗?还是为了更好地支持浏览器? 示例代码: 编辑: 我也在非布尔类型的操作数中看到了这一点,但我一直假设使用无论如何都会评估变量的布尔值,因为Javascript中的所有值都是“真实的”或“Falsey”。 示例代码:

  • 问题内容: Swift编程语言指南包含以下示例: 然后,在将公寓分配给该人时,他们使用感叹号“解开实例”: “取消实例包装”是什么意思?为什么有必要?它与仅执行以下操作有何不同: 我是Swift语言的新手。只是想降低基础知识。 更新: 我遗漏的一大难题(未在答案中直接说明-至少在撰写本文时没有)是在执行以下操作时: 正如我最初所认为的,这并不意味着“ 是类型,可能为零”。我只是误解了,它们是完全独

  • 问题内容: 我正在阅读此查询,遇到了我不明白的那一行 FETT列表是一个表 FETT搜索是FETT列表中的一列 有人可以解释感叹号的含义吗? 谢谢 问题答案: 通常,您会在MS Access代码中看到此信息(对于感叹号,这是SQL Server的句点)。您可以通过table.column来引用列,或者如果为表赋予别名,则可以通过alias.column来引用。如果要在使用联接时特定于表,则可以执行

  • 在Kotlin中,单个感叹号意味着什么?我见过几次,特别是在使用Java API时。但我在文档中和StackOverflow上都找不到它。