`

js 自行函数

    博客分类:
  • js
 
阅读更多
有很多方法立即执行匿名函数,简单的整理就有下面三种的典型方式(还有其他方式的,欢迎告知):

方式一

(function() {
    // …
})();

方式二

void function() {
  // …
}();

方式三

~function() {
   // …
}();

方式一 和 方式二 大家可能都看到过,这里主要说明下 方式三。在说明 方式三 之前,我们现回顾下运算符“~”(位取反)在 EMCAScript 中的定义(第五版的第 72 页),简单的翻译下:

1. 按运算符结合语句

2. 将旧值转换为 32 位整型

3. 执行运算符后的语句

4. 转换之行结果为 32 位整形并返回

从上面可以了解,其实位运算符都能立即返回后面表达式的值。其实其他位运算符都可以达到这样的目的,例如:

!function() {
    // …
}();

等都可以达到我们的目的。所以其实用“~”也并无其他的原因,仅仅是代码“看着好看”而已 :^)


* 方式一的写法很常见而且很保险,所以并不会有人因为你使用这种方式而责怪你

* 但使用方式一的同学,可能经常会犯忘记匹配括号的“毛病”(特别是语句块很长时,就经常搞错)

* 使用位运算符执行匿名函数很新潮,用来装逼酷不错

* 很多 IDE (如 IDEA)以及语法高亮工具不支持 方式三 的写法

* void 效率最好,但总感觉相比其他两种实现方式非常的臃肿(仅仅多几个字符?)

* 综合代码量以及效率等情况考虑,用 方式一 没错的

* 在需要额外节省代码的极端情况,用 方式三

* 考虑效率优先,那么使用 方式二
分享到:
评论

相关推荐

    自行定义和重写的JavaScript函数.docx

    自行定义和重写的JavaScript函数.docx

    js常用工具函数--通用格式化时间、字符串验证-验证邮箱、手机号、电话号码、url地址、严格校验身份证号码,判断数据类型、数组随机洗牌算法、检测密码强度等等..

    JS常用工具函数(压缩包中含有MD文件可自行查看)--包含:通用格式化时间、字符串验证-验证邮箱、手机号、电话号码、url地址、严格校验身份证号码,判断数据类型-是否是字符串、数字、Boolean、函数、对象、数组...

    javascript函数自动执行常用方法汇总

    在网页中JS函数自动执行常用三种方法  在HTML中的Head区域中,有如下函数: [removed]  functionn MyAutoRun()  {  //以下是您的函数的代码,请自行修改先!  alert("函数自动执行哦!");  } ...

    javascript计算器

    •要求实现行为与结构的分离,页面的XHTML文件中不要出现事件响应句柄(即onclick等),全部计算在JavaScript文件(.js)中完成; •要求该 JavaScript 程序在IE6/8,Firefox下测试通过,运行中没有错误/警告/异常;老...

    AST反混淆js还原工具2.3(20231219)

    05 新增:大数组多解密函数(需要先自行排版,大数组-偏移函数-解密函数1-解密函数2-解密函数3) 06 修复bug-未修改常量替换,异常删除与异常替换的情况,对未赋值的增加undefined初始化处理 07 修复bug-未使用...

    一个对象发序列化的工具函数

    本工具函数是针对下面这种类型的字符串对象制作的,使用时若有特别需求可以自行更改

    【JavaScript源代码】Javascript生成器(Generator)的介绍与使用.docx

    返回值后,它会自行暂停,并且—— 调用程序可以要求取消暂停并返回另一个值  这种“返回”不是传统的从函数 return。所以它被赋予了一个特殊的名称——yield。 生成器语法因语言而异。Javascript 的生成器...

    ios-js携带参数调用oc函数的方法(WebViewJavascriptBridge简易化).zip

    项目中用推送发送一个连接用webView加载...参考资料http://www.2cto.com/kf/201505/397560.htm ,测试demo中的html网页中 屏蔽了 WebViewJavascriptBridge其他用法只留了js调用oc的方法,如需其他功能请自行参考资料。

    transport.js

    还有一个解决办法,大家自行研究吧: jQuery.noConflict() 运行这个函数将变量$的控制权让渡给第一个实现它的那个库。 这有助于确保jQuery不会与其他库的$对象发生冲突。 在运行这个函数后,就只能使用jQuery变量...

    js实现网站轮播图

    使用javascript利用定时器,以及函数封装原理,实现网站轮播图效果。简单的原生js实现轮播图效果,使用时请自行将代码分离

    小程序黑白照片上色 ,模糊变清晰

    在云函数 getBaiduAccessToken的index.js中 把apiKey 替换为百度ai申请的appkey 把 secretKey替换成为 百度ai审核的secret秘钥然后更新云函数即可。 云数据库的配置 首先要创建token,index,user三个数据集

    jquery js+php+html5+css3分页栏生成及数据取出代码

    在算法不变化的情况下,也可以修改默认显示 x个页面,只需要修改js文件中fn_page函数中与10相关的数字就可以。 7、如果问题需要探讨请 QQ:947233713 8、我偏向使用js来制作分页栏,至于优点,可以问度娘~~

    解析vue data不可以使用箭头函数问题

    这段代码也是UMD实现原理,本文这里不是重点,有兴趣的可以自行探究。 (function (global, factory) { typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof

    java swfupload 多文件上传js

    <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...

    encrypt.js

    wps登录js加密,调用getPwd()函数,将密码传入即可。请自行动态获取pass_key。python可以通过execjs库调用。

    动网新闻.Net v3.1.721

    24、分类页增加图片新闻简介式显示和图片站模式(DataList可自行美化) 25、增加网站调查功能 26、按web标准规范代码 27、html编辑器支持Xhtml,可显示无边框表格 28、添加简介式显示新闻函数...

    原生js轮播.zip

    使用javascript利用定时器,以及函数封装原理,实现网站轮播图效果。简单的原生js实现轮播图效果,使用时请自行将代码分离

    JS取request值以及自动执行使用示例

    在网页中JS函数自动执行常用三种方法 在HTML中的Head区域中,有如下函数: 代码如下: [removed] functionn MyAutoRun() { //以下是您的函数的代码,请自行修改先! alert(“函数自动执行哦!”); } [removed...

    本文件是涉及到javascript的高级部分学习,也就是难点部分的学习,之后我也会更新js的其他难点部分,感兴趣的小伙伴可以下载

    本文件主要涉及到:this指向问题,闭包,沙箱模式,函数柯里化,继承等知识点,适合已经学习完js基础的小伙伴(js基础可以去看我的前面的专栏:js每日一学),感兴趣的小伙伴可以下载下来自行阅读学习。 本文件是纯...

    原生js贪吃蛇源码,采用canvas实现

    蛇的移动和食物的生成都是通过 JavaScript 代码实现的。玩家可以通过方向键控制蛇的移动方向。游戏循环通过 setInterval 函数实现,每隔一定时间更新一次游戏状态并重新绘制游戏画面。总共有五关,每关对应不同的...

Global site tag (gtag.js) - Google Analytics