否定自调用函数? !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); [复制] 的相关文章

  • 如何在React Native Android中获取响应头?

    您好 我想在获取 POST 请求后获取响应标头 我尝试调试看看里面有什么response with console log response 我可以从以下位置获取响应机构responseData但我不知道如何获取标题 我想同时获得标题和正文
  • 如何使用javascript确保元素仅在圆上朝一个方向移动?

    好吧 我承认我对三角学真的很糟糕 出于上下文的考虑 我将添加我在这里提到的问题中的内容 参考问题 https stackoverflow com a 39429290 168492 https stackoverflow com a 394
  • 使用 Twitter Bootstrap 解除警报不起作用?

    我正在使用谷歌浏览器 Using 推特引导程序 http twitter github com bootstrap 我想添加一个简单的警报 不幸的是alert http twitter github com bootstrap compon
  • 自动建议 php 的 ajax

    我有一个 html 表单 php 脚本和 jquery 我需要一个 ajax 代码来从我的 php 脚本中进行自动建议 以下是代码 表单 html
  • IntersectionObserver是否支持水平滚动观察?

    我制作了几个垂直滚动 IntersectionObserver 模块 但我对水平滚动感兴趣 根将是 div 观察目标将是 img 我想观察当 img 放大但 div 保持视口宽度时的变化 我什至不确定移动 Safari 是否会将缩放后的图片
  • JavaScript 继承;调用和原型

    要在Javascript中实现继承 通常需要执行以下两个步骤 假设我有一个基类 Animal var Animal function name this name name 我现在想从中派生一个子类 Dog 所以我想说 var Dog fu
  • JavaScript 中的 Promise 有什么意义?

    一个承诺是一个 可能现在可用 或将来可用 或永远不可用的值 来源 MDN 假设我有一个想要处理图片的应用程序 图片已加载 例如在算法在后台使用它之后 或某种其他类型的延迟 现在我想检查一下图片是否可以在future 通过使用承诺 而不是回调
  • React Router v4 不渲染组件

    React Router v4 渲染组件存在问题 在应用程序初始加载时 它将呈现与 URL 相对应的正确组件 但是 任何后续的组件Link单击不会呈现所需的组件 图书馆 反应路由器 4 2 2 https reacttraining com
  • 如何使用 Javascript 设置查询字符串

    有没有办法使用 javascript 设置查询字符串的值 我的页面有一个过滤器列表 单击该列表时 它将更改右侧的页内结果窗格 我正在尝试更新 url 的查询字符串值 因此如果用户离开页面 然后单击 后退 按钮 他们将返回到最后一个过滤器选择
  • 编辑第一个选项名称

    我有以下我无法访问的代码 我想要做的是将一些文本添加到现在为空的第一个选项中 诸如 选择地址 之类的文本
  • 如何正确取消引用然后删除 JavaScript 对象?

    我想知道从内存中完全取消引用 JavaScript 对象的正确方法 确保删除时不会在内存中悬空 并且垃圾收集器会删除该对象 当我看这个问题时在 JavaScript 中删除对象 https stackoverflow com questio
  • Vaadin 12 将对象传递给 JavaScript 函数:无法对类进行编码

    Vaadin 12 Kotlin 项目 In my myPage html我有JavaScript myObject redirectToCheckout sessionId 1111 2222 所以我需要调用javaScript函数red
  • 用于选择特定 div 中具有特定类的锚元素的 jQuery 选择器是什么

    我有一些这样的代码 我想选择每个 a 带有类的标签status在 div 中foo div a class status a div 你可以这样做 foo find status a
  • 使用 Jade 评估自定义 javascript 方法 (CircularJSON)

    我想通过 Jade 将一个对象解析为客户端 JavaScript 通常这会起作用 script var object JSON parse JSON stringify object but my object is circular ht
  • 主页(网格)上的缩略图现在显得模糊。如何纠正?

    我不知道这看起来是否愚蠢 但从早上开始我就无法纠正这个突然出现在我的博客网站上的错误www candidopinions in http www candidopinions in 我有一个网格视图模板 其中博客文章中的特色图像作为调整大小
  • 有没有办法使用 ko.observableArray 作为地图?

    有没有办法使用ko observableArray http knockoutjs com documentation observableArrays html像地图 字典一样 例如 var arr ko observableArray
  • 什么是 WKWebView 中的 WKErrorDomain 错误 4

    fatal error LPWebView encounters an error Error Domain WKErrorDomain Code 4 A JavaScript exception occurred UserInfo 0x7
  • 将数组从 jquery ajax 传递到代码后面

    我必须将二维数组传递给在asp net网页代码后面编写的页面方法我有一个变量objList作为二维数组 我使用以下代码来实现此目的 但没有成功 并且未调用页面方法 脚本语言 function BindTable objList ajax u
  • 没有输入的 jQuery 日期选择器

    我有一个相当复杂的网络应用程序 我想向其中添加一些日期选择 UI 我遇到的问题是我无法从文档中弄清楚如何真正控制日期选择器的出现方式和时间 不涉及任何表单元素 不 我不会添加秘密表单字段 因此简单的开箱即用方法根本行不通 我希望有人可以提供
  • 使用velocity.js制作可拖动元素的动画

    我正在使用velocity js 为用户拖动的可拖动 SVG 元素设置动画 然而 velocity js 将先前的 mousemove 坐标排队并通过所有后续的 mousemove 坐标进行动画处理 我想要的是velocity js 不要对

随机推荐

  • 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