匿名函数的写法
来源:Gracecode.com 发布时间:2010-01-06 13:32:00
标签:函数,匿名函数,JavaScript
这是 小马 在交流会中的分享,可能有些朋友还不曾了解,同时也为了自己温故而知新,就整理下。
多种方式
可以想像得到,有很多方法立即执行匿名函数,简单的整理就有下面三种的典型方式(还有其他方式的,欢迎告知):
方式一
(function() { // …})();
方式二
void function() { // …}();
方式三
~function() { // …}();
方式一 和 方式二 大家可能都看到过,这里主要说明下 方式三。在说明 方式三 之前,我们现回顾下运算符“~”(位取反)在 EMCAScript 中的定义(第五版的第 72 页),简单的翻译下:
按运算符结合语句
将旧值转换为 32 位整型
执行运算符后的语句
转换之行结果为 32 位整形并返回
从上面可以了解,其实位运算符都能立即返回后面表达式的值。其实其他位运算符都可以达到这样的目的,例如
!function() { // …}();
等都可以达到我们的目的。所以其实用“~”也并无其他的原因,仅仅是代码“看着好看”而已 :^)


猜你喜欢
- 前言本文将教你如何使用YOLOV3对象检测器、OpenCV和Python实现对图像和视频流的检测。用到的文件有yolov3.weights、
- 什么是PromisePromise 是异步编程的一种解决方案,其实是一个构造函数,自己身上有all、reject、resolve这几个方法,
- 本文实例为大家分享了python实现五子棋游戏的具体代码,供大家参考,具体内容如下一、运行截图:二、代码# 用数组定义一个棋盘,棋盘大小为
- 主要用到的工具:Pandas 、fuzzywuzzyPandas:是基于numpy的一种工具,专门为分析大量数据而生,它包含大量的处理数据的
- 如下所示:# x = ['c b a',"e d f"]# y = []# for i in x:# f
- 【OpenCV】 ⚠️高手勿入! 半小时学会基本操作 ⚠️ 直线检测概述OpenCV 是一个跨平台的计算机视觉库, 支持多语言, 功能强大.
- 最近用vuepress建了个博客,音乐的背景图片需要网络地址。还有博客自动复用的摘要图片也需地址开始用的阿里云的免费对象存储oss,但又是登
- Ajax的出现让Web展现了更新的活力,基本所有的语言,都动态支持Ajax与起服务端进行通信,并在页面实现无刷新动态交互。 下面是散仙使用D
- 前言在Python中变量名规则与其他大多数高级语言一样,都是受C语言影响的,另外变量名是大小写敏感的。Python是动态类型语言,也就是说不
- 下面是ThoughtBot 的Git使用规范流程。我从中学到了很多,推荐你也这样使用Git。第一步:新建分支首先,每次开发新功能,都应该新建
- XMLHttpRequest的兼容代码功能结构上大体没有什么变动主要处理了这么几条:1.不同浏览器的创建方式2.事件大小写问题(ie7的XM
- 将wav转amr,并转换成hex数组将wav文件快速转为amr,同时将arm文件转为16进制数组,保存在对应.h文件,供嵌入式设备使用(无文
- 1. 背景在软件需求、开发、测试过程中,有时候需要使用一些测试数据,针对这种情况,我们一般要么使用已有的系统数据,要么需要手动制造一些数据。
- 实例1、取得MYSQL版本# -*- coding: UTF-8 -*-#安装MYSQL DB for pythonimport MySQL
- 看知乎的时候发现了一个 “如何正确地吐槽” 收藏夹,里面的一些神回复实在很搞笑,但是一页一页地看又有点麻烦,而且每次都要打开网页,于是想如果
- 可以通过 reflect.DeepEqual 比较两个 slice/struct/map 是否相等:package main import
- 可编辑下拉框-HTML <div style="position:relative;"> <selec
- 0. dockerfile命令FROM # 基础镜像,一切从这里开始构建MAINTAINER # 镜像是谁写的,姓名+邮箱RUN# 镜像构建
- 最近,在做一个项目时遇到的了一个问题,主线程无法捕获子线程中抛出的异常。先看一个线程类的定义'''''
- 在进行数据库的查询时,会经常遇到这样的情况:例如想在一个用户数据库中查询他的用户名和他的密码,但恰好该用户使用的名字和密码中有特殊的字符,例