有很多方法立即执行匿名函数,简单的整理就有下面三种的典型方式(还有其他方式的,欢迎告知):
方式一
(function() {
// …
})();
方式二
void function() {
// …
}();
方式三
~function() {
// …
}();
方式一 和 方式二 大家可能都看到过,这里主要说明下 方式三。在说明 方式三 之前,我们现回顾下运算符“~”(位取反)在 EMCAScript 中的定义(第五版的第 72 页),简单的翻译下:
1. 按运算符结合语句
2. 将旧值转换为 32 位整型
3. 执行运算符后的语句
4. 转换之行结果为 32 位整形并返回
从上面可以了解,其实位运算符都能立即返回后面表达式的值。其实其他位运算符都可以达到这样的目的,例如:
!function() {
// …
}();
等都可以达到我们的目的。所以其实用“~”也并无其他的原因,仅仅是代码“看着好看”而已 :^)
* 方式一的写法很常见而且很保险,所以并不会有人因为你使用这种方式而责怪你
* 但使用方式一的同学,可能经常会犯忘记匹配括号的“毛病”(特别是语句块很长时,就经常搞错)
* 使用位运算符执行匿名函数很新潮,用来装逼酷不错
* 很多 IDE (如 IDEA)以及语法高亮工具不支持 方式三 的写法
* void 效率最好,但总感觉相比其他两种实现方式非常的臃肿(仅仅多几个字符?)
* 综合代码量以及效率等情况考虑,用 方式一 没错的
* 在需要额外节省代码的极端情况,用 方式三
* 考虑效率优先,那么使用 方式二
分享到:
相关推荐
自行定义和重写的JavaScript函数.docx
JS常用工具函数(压缩包中含有MD文件可自行查看)--包含:通用格式化时间、字符串验证-验证邮箱、手机号、电话号码、url地址、严格校验身份证号码,判断数据类型-是否是字符串、数字、Boolean、函数、对象、数组...
在网页中JS函数自动执行常用三种方法 在HTML中的Head区域中,有如下函数: [removed] functionn MyAutoRun() { //以下是您的函数的代码,请自行修改先! alert("函数自动执行哦!"); } ...
•要求实现行为与结构的分离,页面的XHTML文件中不要出现事件响应句柄(即onclick等),全部计算在JavaScript文件(.js)中完成; •要求该 JavaScript 程序在IE6/8,Firefox下测试通过,运行中没有错误/警告/异常;老...
05 新增:大数组多解密函数(需要先自行排版,大数组-偏移函数-解密函数1-解密函数2-解密函数3) 06 修复bug-未修改常量替换,异常删除与异常替换的情况,对未赋值的增加undefined初始化处理 07 修复bug-未使用...
本工具函数是针对下面这种类型的字符串对象制作的,使用时若有特别需求可以自行更改
返回值后,它会自行暂停,并且—— 调用程序可以要求取消暂停并返回另一个值 这种“返回”不是传统的从函数 return。所以它被赋予了一个特殊的名称——yield。 生成器语法因语言而异。Javascript 的生成器...
项目中用推送发送一个连接用webView加载...参考资料http://www.2cto.com/kf/201505/397560.htm ,测试demo中的html网页中 屏蔽了 WebViewJavascriptBridge其他用法只留了js调用oc的方法,如需其他功能请自行参考资料。
还有一个解决办法,大家自行研究吧: jQuery.noConflict() 运行这个函数将变量$的控制权让渡给第一个实现它的那个库。 这有助于确保jQuery不会与其他库的$对象发生冲突。 在运行这个函数后,就只能使用jQuery变量...
使用javascript利用定时器,以及函数封装原理,实现网站轮播图效果。简单的原生js实现轮播图效果,使用时请自行将代码分离
在云函数 getBaiduAccessToken的index.js中 把apiKey 替换为百度ai申请的appkey 把 secretKey替换成为 百度ai审核的secret秘钥然后更新云函数即可。 云数据库的配置 首先要创建token,index,user三个数据集
在算法不变化的情况下,也可以修改默认显示 x个页面,只需要修改js文件中fn_page函数中与10相关的数字就可以。 7、如果问题需要探讨请 QQ:947233713 8、我偏向使用js来制作分页栏,至于优点,可以问度娘~~
这段代码也是UMD实现原理,本文这里不是重点,有兴趣的可以自行探究。 (function (global, factory) { typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof
<script type="text/javascript" src="js/swfupload.queue.js"> <script type="text/javascript" src="js/fileprogress.js"> <script type="text/javascript" src="js/handlers.js"> 3. 编写脚本,对SWFUpload...
一个基于vue3.3+ts+element-plus的开箱即用开发框架 封装了axios,集成各种工具函数等。仓库为项目初始化模板,使用的 vite 构建,包含 vue3.3+typescript+element-plus+tailwindcss,开箱即用,已经删除无用代码与...
wps登录js加密,调用getPwd()函数,将密码传入即可。请自行动态获取pass_key。python可以通过execjs库调用。
24、分类页增加图片新闻简介式显示和图片站模式(DataList可自行美化) 25、增加网站调查功能 26、按web标准规范代码 27、html编辑器支持Xhtml,可显示无边框表格 28、添加简介式显示新闻函数...
使用javascript利用定时器,以及函数封装原理,实现网站轮播图效果。简单的原生js实现轮播图效果,使用时请自行将代码分离
在网页中JS函数自动执行常用三种方法 在HTML中的Head区域中,有如下函数: 代码如下: [removed] functionn MyAutoRun() { //以下是您的函数的代码,请自行修改先! alert(“函数自动执行哦!”); } [removed...
本文件主要涉及到:this指向问题,闭包,沙箱模式,函数柯里化,继承等知识点,适合已经学习完js基础的小伙伴(js基础可以去看我的前面的专栏:js每日一学),感兴趣的小伙伴可以下载下来自行阅读学习。 本文件是纯...