否定自调用函数? !function ($) { ... }(window.jQuery); [复制]

2024-04-06

可能的重复:
函数前面的感叹号有什么作用? https://stackoverflow.com/questions/3755606/what-does-the-exclamation-mark-do-before-the-function

我正在查看 Twitter Bootstrap JavaScript 代码,我注意到它们的所有插件都包含在否定自调用函数中。

我知道function ($) { ... }(window.jQuery);立即调用该函数。

但什么是! for?


1)如果你这样做:

function () { /* ... */ }();

你会得到一个错误。
JS 不允许您触发函数声明(因为“变量提升”的概念,这在技术上并不正确,但对很多人来说更容易思考)。
如果您使用声明性函数:

function myFunc () { /* ... */ }

JS 引擎会在创建作用域的变量之前在您所在的作用域中创建它们——即使变量都在顶部而函数都在底部。

所以当你写:

function myFunc () { /* ... */ }();

那里有一个错误,因为当前作用域中还不存在的变量可能会在内部被调用,这肯定会崩溃。

更进一步,如果您不给函数声明命名:

function () { /* ... */ }

...无论如何,那里都会出现错误,因为您还无法调用该函数,但您无法获取它,因为它没有名称,并且您没有将其分配给变量。

运营商喜欢() or + or !-- 任何迫使引擎评估接下来发生的事情的东西,都将允许您触发该函数,例如:

+function () { /* ... */ }();

只要没有变量监听 return 语句,就可以了。

2) 另外,如果!function () { /*...*/ }();,如果该函数自然没有 return 语句,那么它将返回undefined.
相反的是undefined is true当被这样胁迫的时候……

...所以如果你真的、真的想要,你可以这样做:

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

否定自调用函数? !function ($) { ... }(window.jQuery); [复制] 的相关文章

  • jQuery 单击事件更改 php 会话变量

    对此最好的方法是什么 因为 正如我发现的 只有在尝试过之后才完全有意义 p 你不能在 javascript 条件下设置 PHP 变量 杜尔赫 我能想到的唯一解决方案是对一个处理会话变量的小型 PHP 文件进行 AJAX 调用 elm cli
  • 如何从图书馆创建承诺

    我对此感到困惑 因为到目前为止我发现的每个教程都假设我可以编辑库代码 或者库只有回调或回调作为最后一个参数 我正在使用的库的每个功能都设置为function successCallBack result FailCallBack error
  • Bootstrap 轮播图像不按比例缩放

    我的轮播填充了页面的宽度 但是当我缩小窗口时 y 轴没有响应 一探究竟here http sacgamehub com index html 如何保持原始图像比例 保留轮播中所有图像的明确尺寸 它应该可以正常工作
  • FindAndUpdate 如何检查文档是否真的更新

    想象一下以下模型 var Office id 1 name My Office branches adddress Some street that avenue isPrincipal true adddress Another addr
  • 锁定 contenteditable="true" div 中的元素

    我有一个用于用户输入的 contenteditable div 当单击按钮时 它会显示替换某些单词的选项 首先 它删除所有 html 并创建可以替换单词的 span 元素 这些词的标记不同 我面临一些问题 当直接在跨度之前或之后单击并键入文
  • jQuery Mobile 和页眉/页脚问题

    使用 jQuery Mobile 有人知道为什么当使用 changePage 函数更改到内容超出视口高度的页面时 页面的页眉会消失而页脚会出现在内容顶部的视图中吗 仅当您使用过渡来更改页面时才会发生这种情况 如果您在没有过渡的情况下更改页面
  • 简单的php ajax请求url

    我有很多这样的链接 不同的项目有不同的链接 a class member href http ex com action php me 1 link1 a 所以当我点击这个我想导航到action php从这里 here php 我正在使用
  • 为什么在 Javascript 中添加两位小数会产生错误的结果? [复制]

    这个问题在这里已经有答案了 可能的重复 JavaScript 的数学有问题吗 https stackoverflow com questions 588004 is javascripts math broken 为什么 JS 搞砸了这个简
  • 如何在警报或确认框中显示粗体文本?

    如何获取粗体文本并更改警报或确认框中文本的颜色 var conFrm confirm Following List s already Sent n strong List Name strong ss replace n b Name b
  • 打开 Chrome 扩展程序时出现 Service Worker TypeError

    当我打开 WAVE Web 可访问性评估工具 扩展时 我的服务工作人员在 Chrome 中抛出此错误 未捕获 承诺中 类型错误 请求方案 chrome extension 是 不支持的 在 sw js 52 匿名 sw js 52 Prom
  • 为什么 getSession() 在短时间内间隔的后续请求中不返回相同的会话?

    我正在发送一个 getJSON HTTP GET 请求两次 使用不同的数据 一次又一次 假设我们有 request1 和 request2 我可以在 FF 和 Chrome 的开发者工具中看到我有相同的cookie JSESSIONID F
  • 玩笑测试因 refs 和 Form 失败

    我有一个搜索栏组件 如下所示 render const onChangeTextInput this props return
  • 从字符串中提取所有链接

    我有一个 javascript 变量 其中包含页面的 HTML 源代码 不是当前页面的源代码 我需要从该变量中提取所有链接 关于什么是最好的方法的任何线索 是否可以为变量中的 HTML 创建一个 DOM 然后遍历它 我不知道这是否是推荐的方
  • 如何使用 Angular/Ionic/JS 显示 Motion JPEG 二进制数据流?

    我正在为设备编写应用程序 此类设备将收到 POST 请求 并发回multipart x mixed replace二进制数据流 我必须在我的应用程序主页的一部分上显示此类流 我查了一下 这种情况的资源非常有限 到目前为止 我发现如果 Mot
  • 从 Angularjs 应用程序中的 iOS Webview 调用 Javascript 函数

    我的问题是 当我尝试从 UIWebView 中调用 AngularJS 应用程序中存在的 javascript 函数时 该函数无法识别 当我在典型的 html 结构中调用该函数时 该函数会按预期被识别 下面提供的示例 目标 C void v
  • 多个 if else 条件的替代方法[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我有多个条件需要检查和执行 如下所示 if date current date source s3 table name Table1 else
  • 在视口中保留绝对定位的元素(jquery)

    我现在正在开发一个带有很多工具提示的网站 我想确保工具提示始终完全显示在视口中 我知道有工具提示插件 但它们对我不起作用 因为工具提示是通过 css 完成的 而且我不能全部更改 任何想要获得工具提示的元素都会被赋予一个position re
  • 创建一个跨浏览器 mixin 进行转换:旋转

    我想为 sass 创建一个 mixin 它将对指定元素应用旋转 mixin 应采用一个参数 表示要应用的旋转度数 从 css3please com 我找到了一种使用 CSS 实现此功能的跨浏览器方法 box rotate moz trans
  • JS jQuery - 检查值是否在数组中

    我更喜欢 PHP 而不是 JS 我认为我的问题更多是语法问题 我有一个小的 jQuery 来 验证 并检查输入值 它适用于单个单词 但我需要数组 我正在使用inArray jQuery 的 var ar value1 value2 valu
  • 将 JS 文件导入 Typescript

    我正在考虑转向 Typescript 目前正在考虑慢慢地 如果可能的话 逐个文件地执行此操作 现在我目前拥有的系统是用 Webpack 构建的 我想继续这个来构建我的整个包 我有一个用于定义的 d ts 文件 但我需要继续导入当前引发错误的

随机推荐

  • Django:搜索短语中各个单词的首字母?

    我有一个名为的 Django 模型Author 有一个名为name 它不分为姓氏 名字 class Author models Model name models CharField max length 200 unique True 例
  • 根据条件分割数据框

    我正在尝试将我的数据框分成两个基于medical plan id 如果为空 则进入df1 如果不空入df2 df1 df with medicalplanid df with medicalplanid medical plan id df
  • R quantmod:getFinancials

    我正在尝试导入在纽约证券交易所上市的所有公司的财务报表 这些公司的市值大于样本的第一个四分位 这是我的代码 require TTR require quantmod data init 2013 01 01 start date lt as
  • 是否可以将类的静态对象存储在共享首选项中?

    我正在开发一个项目 我正在创建一个静态class s object 所以当我switch off device at that time all the static objects are cleared所以我想存储到shared pre
  • Python:如何在 40 秒内更新 Google BigQuery 中的值?

    我有一张桌子在Google BigQuery我使用 Python 访问和修改pandas功能read gbq and to gbq 问题是追加 100 000 行大约需要 150 秒 而追加 1 行大约需要 40 秒 我想更新表中的值而不是
  • 获取组驱动器中当前 Word 文档的 OneDrive 项目 ID

    我正在研究一个Office js Word插件但文档存储在组驱动器上 我怎样才能获得其中一个或全部group id drive id and item id对于当前文档 相关问题is here https stackoverflow com
  • 如何返回不同的值及其计数?

    我想做的 希望 很简单 但我只是不太掌握正确的语法 我想返回表中的所有不同值 并计算每个值的记录数 所以 在 PHP 中 我有 result mysql query SELECT DISTINCT tagName FROM tagTable
  • KivyMD 顶部应用栏

    我正在尝试学习 Kivy 和 KivyMD 因为我想制作一个 Android 应用程序 但我陷入了第一个障碍 我想要一个工具栏 或者按照 KivyMD 文档的说法 TopAppBar 我正在尝试按照文档实现它 但出现错误Unknown Cl
  • JSON自动添加反斜杠

    我正在尝试使用 Gson 将 java 对象转换为 json 但是当我尝试打印它时 我得到了这个 JSON 用户 电子邮件 电子邮件受保护 cdn cgi l email protection 姓氏 Las 姓名 amy 密码 qwe123
  • 是否可以将时间戳添加为 firestore 数据库中的文档字段?

    在与云Firestore https firebase google com docs firestore 我在将数据添加到 Cloud Firestore https firebase google com docs firestore
  • 有没有办法使用基于范围的 for 循环迭代最多 N 个元素?

    有没有一种好的方法可以使用基于范围的容器来迭代容器中的最多 N 个元素for标准库中的循环和 或算法 这就是重点 我知道我可以使用 旧 for带条件循环 基本上 我正在寻找与此 Python 代码相对应的内容 for i in arr N
  • Swift NSTextField 文本消失

    这个问题可能存在于 Objective c 的一篇 6 年前的帖子中 我还没有找到最近有效的答案或问题 或者是用 Swift 编写的答案或问题 我正在使用故事板并且我已经子类化NSTextField 由于某种原因 当我单击该字段时 占位符会
  • SwiftUI:TextField 中的多颜色文本

    我想为 TextField 中的文本更改两种不同的颜色 对于第一个单词 颜色为深灰色 对于第二个单词 颜色为浅灰色 是否可以 TextField Dumble Dore text username 还有另一种方法只使用 SwiftUI 和我
  • 如何在循环发送更多数据之前等待 COM 端口接收事件

    我正在开发一个小组件 用于使用旧的索尼爱立信手机编写和读取 AT 命令 向手机发送和写入数据完全没有问题 但是我希望能够暂停 SendATCmd 函数并等待 COM 端口组件通过通知事件通知我 然后再次恢复 SendATCmd 函数 场景
  • DUMPBIN 实用程序损坏的名称输出

    我正在使用 DUMPBIN 实用程序从 c dll 中获取损坏的名称以在 c 应用程序中使用 我使用 declspec dllexport 公开一个 C 类成员函数 输出的损坏名称结果如下 InitPort CProtocolStack Q
  • 如何用Python制作独特的短网址?

    如何在Python中创建唯一的URLhttps i stack imgur com turb6 jpg https i stack imgur com turb6 jpg or http tumblr com xzh3bi25y http
  • 使用 apache Camel 读取 gmail 收件箱中的所有邮件

    我正在尝试阅读来自谷歌邮件 Gmail imaps 帐户的所有邮件并下载其附件 但我只能收到一封未读邮件及其附件 发布我的代码片段 Download function public void download throws Exceptio
  • 尝试在 Inno Setup 代码中检测锁定文件时出现“未知标识符‘FileOpen’”

    我正在尝试使用FileOpen在 Inno Setup 代码中 但是 Inno Setup 编译器不断向我抛出以下错误 未知标识符 文件打开 这是示例代码 function IsFileLocked pathFile string Bool
  • 错误“空话回复”

    我尝试连接对话流 and 在 Google 上的操作 所以我创建了一些意图 连接了服务 添加了显式和隐式调用等 但是当我在模拟器中尝试机器人时https console actions google com project projectI
  • 否定自调用函数? !function ($) { ... }(window.jQuery); [复制]

    这个问题在这里已经有答案了 可能的重复 函数前面的感叹号有什么作用 https stackoverflow com questions 3755606 what does the exclamation mark do before the