Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >匿名函数自调用_自己调用自己的函数叫

匿名函数自调用_自己调用自己的函数叫

作者头像
全栈程序员站长
发布于 2022-11-09 08:32:48
发布于 2022-11-09 08:32:48
2.6K00
代码可运行
举报
运行总次数:0
代码可运行

我们知道一个HTML文件在被加载的时候是从根标签html依次往下的,在遇到link,script等标签引入的外部资源时,下载外部资源,并执行外部资源。在js中,表达式会被立即执行,也就是说,不管是引入的外部js文件还是嵌入在html文件中的js脚本,其中的表达式都会被立即执行。 函数名是一个指向函数的指针。在JavaScript中,定义函数有常见的两种形式:函数声明和函数直接量(或者叫函数表达式)。 函数声明:采用function定义声明函数的标准写法,包括function,函数名,函数体。如

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function sum(x,y){ 
     
    alert(x+y);  
}

函数表达式:定义一个匿名函数,并赋值给一个变量。如

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var ss = function(x,y){ 
     
    alert(x+y);  
}; 

函数表达式有多种形式,后面会一一介绍。 关于函数声明,它最重要的一个特征就是函数声明提升,意思是执行代码之前先读取函数声明。这意味着可以把函数声明放在调用它的语句之后。例

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sun(1,2;    //3
function sum(x,y){ 
     
    alert(x+y);  
}

而函数表达式在编译的时候不会被提前,如下调用函数将会报错

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ss(1,2);    //报错,函数未定义
var ss = function(x,y){ 
     
    alert(x+y);  
};

介绍了函数的定义以及JavaScript的编译规则,下面正式说一下匿名函数自调用。当我们给匿名函数外面加上一层()的时候,匿名函数就变成了函数表达式,在JavaScript编译的时候就会被立即执行。如

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
(function(x,y){ alert(x+y);  })(1,2); //3

除了用()把匿名函数包起来之外,后面还需要再跟一个(),可以通过此()给匿名函数传参。 变形写法:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
(function(x,y){ alert(x+y);  }(1,2)); //3(括号在里面)

匿名函数自调用的写法有很多,下面列举常见的几种写法 1、匿名函数前加 void

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
void function(x) { 
   
      x = x-1;
      alert(x);
}(9);    //8

2、匿名函数前加 !

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
!function () { x = x-1; alert(x); }(9);   //8

3、匿名函数前加 +/-运算符

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
-function(x,y){ 
   
    alert(x+y);
    return x+y;
}(3,4);

+function(x,y){ 
   
    alert(x+y);
    return x+y;
}(3,4);

--function(x,y){ 
   
    alert(x+y);
    return x+y;
}(3,4);

++function(x,y){ 
   
    alert(x+y);
    return x+y;
}(3,4);

运算符不起运算作用,只是为了把匿名函数变成一个表达式 4、匿名函数前加波浪符(~)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
~function(x, y) { 
   
    alert(x+y);
   return x+y;
}(3, 4);

5、匿名函数执行放在中括号内

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[function(){ 
   
   console.log(this) // 浏览器得控制台输出window
}(this)];

6、匿名函数前加new ,typeof ,delete等

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
new function(win){ 
   
   console.log(win) // window
}(this);

typeof function(){ 
   
   console.log(this) // 浏览器得控制台输出window
}(this);

delete function(){ 
   
   console.log(this) // 浏览器得控制台输出window
}(this);

只要记住一点,匿名函数前面加的任何运算符、操作符都不起运算和操作作用,而只是为了把匿名函数包装成一个表达式执行!!!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/186293.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年10月3日 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
js的匿名函数_匿名函数
关于函数声明,它最重要的一个特征就是函数声明提升,意思是执行代码之前先读取函数声明。不管函数声明写在前面,还是后面,都会出现函数声明的提升。 如下代码可以正确执行:
全栈程序员站长
2022/11/09
4.1K0
javascript自调函数
JavaScript中匿名函数一种非常常见的用法就是自调函数,这种函数可以在定义之后自行调用。 自调函数常见形式是: (function(){ alert("foo"); })() 光看这个形式,可能会让人以为是在函数体前后包个括号,然后后面通过括号运算符来立即调用函数,形式上说是对的,但是为什么要给函数包个括号?下面我们就来重新认识一下自调函数。 要理解自调函数,首先我们要理解两个概念 函数声明 函数声明通常由一下几部分组成: function子句 函数名称 函数的参数 函数体
Bob.Chen
2018/04/27
1.4K0
用匿名函数定义函数_c语言最先执行的函数是
关于函数声明,它最重要的一个特征就是函数声明提升,意思是执行代码之前先读取函数声明。这意味着可以把函数声明放在调用它的语句之后。如下代码可以正确执行:
全栈程序员站长
2022/08/04
1.1K0
JavaScript 匿名函数几种执行方式[通俗易懂]
其中说到了 self-executing anonymous functions,有几种方式,最常见也比较容易理解的是:
全栈程序员站长
2022/11/09
1K0
JavaScript 匿名函数几种执行方式[通俗易懂]
JS 匿名函数——几种不同的调用方式[通俗易懂]
注意:使用匿名函数表达式时,函数的调用语句,必须放在函数声明语句之后!!! 原因:检查装载时,会先对show变量及这个匿名函数声明,此时,还未将匿名函数赋值给show变量,如果在表达式之前调用,会报错 show is not a function
全栈程序员站长
2022/11/09
4.3K0
匿名函数调用方法_javascript匿名函数
没错,匿名函数简单来说就是普通函数去掉名字,但是他不能单独定义与使用,下面是匿名函数的一些使用场景:
全栈程序员站长
2022/11/14
1.6K0
匿名函数与自执行函数
匿名函数就是指的没有名字的函数,即定义函数对象时不定义函数体名字,但是必须将匿名函数作为表达式赋予一定操作,比如将其作为变量值或者让其自执行,否则这次定义将无意义,解释器也会抛出异常。
WindRunnerMax
2020/08/27
1.4K0
js匿名函数和箭头函数_函数式编程
简单点说就是没有名字的函数,在声明函数时不写函数名称,(将函数赋值给变量)叫匿名函数。
全栈程序员站长
2022/11/10
1.9K0
JavaScript之闭包问题以及立即执行函数
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_35512245/article/details/53514804
大黄大黄大黄
2018/09/14
9930
JavaScript之闭包问题以及立即执行函数
js的匿名函数 转
js的匿名函数 jQueryJavaScript编程浏览器 对javascript匿名函数的理解(透彻版)网上很多解释,我无法理解,我想知道原理。。。这篇文章应该可以透彻一点  Query片段
tianyawhl
2019/04/04
3.9K0
深入理解立即执行函数
立即执行函数常用于第三方库,它可以用来隔离变量作用域,很多第三方库都会存在大量的变量和函数,在ES5环境下为了避免变量污染,开发者想到的解决办法就是使用立即执行函数。
神奇的程序员
2022/04/10
1.4K0
js什么是匿名函数_js函数返回值
js匿名函数的代码如下: (function(){ // 这里忽略jQuery 所有实现 })();
全栈程序员站长
2022/11/10
7.3K0
js基础知识
最主要区别是函数名称 在函数表达式中可省略函数声明,从而创建匿名函数
星辉
2019/01/15
5550
函数与作用域
1.函数声明和函数表达式有什么区别 函数就是一段可以反复调用的代码块。函数还能接受输入的参数,不同的参数会返回不同的值。 JavaScript有三种方法,可以声明一个函数。 1.function命令 function命令声明的代码区块,就是一个函数。function命令后面是函数名,函数名后面是一对圆括号,里面传入函数的参数。函数体放在大括号里面。 function add(s) { console.log(s) } 上面的代码命名了一个print函数,以后使用print()这种形式,就可以调用相应
小胖
2018/06/27
8620
js中匿名函数自调用
* 全称: Immediately-Invoked Function Expression 立即调用函数表达式
李才哥
2020/03/28
5.7K0
浅谈自执行函数(立即调用的函数表达式)
既然函数名加上括号fun1()就是执行函数。 思考:直接取赋值符号右侧的内容直接加个括号,是否也能执行? 试验如下,直接加上小括弧:
celineWong7
2020/11/05
3.6K0
JS 函数
这个函数叫做匿名函数 — 它没有函数名! 它也不会自己做任何事情。 你通常使用匿名函数以及事件处理程序, 例如,如果单击相关按钮,以下操作将在函数内运行代码:
acc8226
2022/05/17
6K0
JavaScript学习总结(三)——闭包、IIFE、原型、函数与对象
一、闭包(Closure) 1.1、闭包相关的问题 请在页面中放10个div,每个div中放入字母a-j,当点击每一个div时显示索引号,如第1个div显示0,第10个显示9;方法:找到所有的div,
张果
2018/01/04
1.6K0
JavaScript学习总结(三)——闭包、IIFE、原型、函数与对象
JavaScript 学习-7.函数定义的几种方式
之前学习变量的时候,学到一个词:”声明提升”,函数声明也会被提升。 “hoisting(声明提升)”:函数声明和变量声明总是会被解释器悄悄地被”提升”到方法体的最顶部。
上海-悠悠
2022/05/17
9070
对JAVASCRIPT匿名函数的理解
网上很多解释,我无法理解,我想知道原理。。。这篇文章应该可以透彻一点 Query片段: (function(){ //这里忽略jQuery所有实现 })();   要说匿名函数,我们首先要由函数本身说起。函数的定义如下: 函数是将唯一的输出值赋予给每一输入的“法则”。   当然,这只是数学上的定义。但是,在计算机编程语言中,函数的定义也八九不离十。因为,我们都知道,计算机中的函数,也类似数学定义中的描述,它是将输入的若干数据,经过代码设定的逻辑操作处理后,返回唯一的输出的一组代码组合块。—
用户1214487
2018/01/24
1.2K0
相关推荐
js的匿名函数_匿名函数
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验