匿名函数顾名思义指的是没有名字的函数,在实际开发中使用的频率非常高!也是学好JS的重点。

释义:匿名函数,就是没有实际名字的函数。

小试牛刀,首先我们声明一个普通函数:

//声明一个普通函数,函数的名字叫fn
function fn(){console.log("hello");}

然后将函数的名字去掉即是匿名函数:

//匿名函数,咦,运行时,你会发现报错啦!function (){console.log("hello");//Function statements require a function name
}

到此,你会发现单独运行一个匿名函数,由于不符合语法要求,报错啦!解决方法只需要给匿名函数包裹一个括号即可:

//匿名函数在其它应用场景括号可以省略(function (){//由于没有执行该匿名函数,所以不会执行匿名函数体内的语句。console.log("hello");})

如果需要执行匿名函数,在匿名函数后面加上一个括号即可立即执行!

(function (){//此时会输出 helloconsole.log("hello");})()

倘若需要传值,直接将参数写到括号内即可:

(function (str){//此时会输出 helloworld!console.log("hello"+str);})("world!")

匿名函数的应用场景:

1、事件

<input type="button" value="btn" id="sub"><script>//获得按钮元素var sub = document.querySelector("#sub");//给按钮增加点击事件。sub.onclick=function(){alert("当点击按钮时会执行");}</script>

2、对象

var obj = {name:"lynn",age:18,fn:function(){return "我叫"+this.name+"今年"+this.age+"岁了!";}
};console.log(obj.fn());//我叫lynn今年18岁了!

3、函数表达式

//将匿名函数赋值给变量fn。var fn = function(){return "2020"}//调用方式与调用普通函数一样console.log(fn());// 2020

4、回调函数

setInterval(function(){console.log("回调函数,每次1秒钟会被执行一次");},1000);

5、返回值

//将匿名函数作为返回值
function fn(){//返回匿名函数return function(){return lynn";}
}//调用匿名函数
console.log(fn()());//lynn//或
var box=fn();console.log(box());//lynn

6、模仿块级作用域

块级作用域,有的地方称为私有作用域。JavaScript中是没有块级作用域的,例如:

if( 1 == 1 ){ //条件成立,执行if代码块语句。var a = 12; //a为全局变量
}console.log(a);//12for( var i= 0; i < 3; i++){console.log(i);
}console.log(i);//4

if ( ){ }for( ){ }

等没有自己的作用域。如果有,出了自己的作用域,声明的变量就会立即被销毁了。但是咱们可以通过匿名函数来模拟块级作用域:

(function(){//这里是我们的块级作用域(私有作用域)})();

尝试块级作用域:

function fn(){(function(){var ha="哈哈哈!";})();console.log(ha);//报错 ha is not defined
}fn();

匿名函数的作用:

1、通过匿名函数可以实现闭包。闭包是可以访问在函数作用域内定义的变量的函数。若要创建一个闭包,往往都需要用到匿名函数。

2、模拟块级作用域,减少全局变量。执行完匿名函数,存储在内存中相对应的变量会被销毁,从而节省内存。再者,在大型多人开发的项目中,使用块级作用域,会大大降低命名冲突的问题,从而避免产生灾难性的后果。自此开发者再也不必担心搞乱全局作用域了。

js中的匿名函数的作用以及用法讲解相关推荐

  1. js中的匿名函数和匿名自执行函数

    1.匿名函数的常见场景 js中的匿名函数是一种很常见的函数类型,比较常见的场景: <input type="button" value="点击" id=& ...

  2. JavaScript中匿名函数的作用和用法

    匿名函数可以有效的保证在页面上写入Javascript,而不会造成全局变量的污染. 这在给一个不是很熟悉的页面增加Javascript时非常有效,也很优美. 例: <!DOCTYPE html& ...

  3. js中自执行函数的作用

    当一个页面两个人写定义的相同的变量名就会发生冲突 污染全局 自执行函数的作用就出来了,自执行函数里面是一个单独的作用域不会影响其他的也不会污染全局 (function(){ })(); //建立一个单 ...

  4. js中Object.freeze()函数的作用

    官方文档 Object.freeze() 方法可以冻结一个对象.一个被冻结的对象再也不能被修改:冻结了一个对象则不能向这个对象添加新的属性,不能删除已有属性,不能修改该对象已有属性的可枚举性.可配置性 ...

  5. js中call和apply的作用和用法

    call和apply的用途是完全一样的.改变函数中this的指向: 为什么要改变this的指向呢?这个有什么用?有哪些场景呢? 首先this的指向总是在变的,this的指向是由函数执行时所在的环境决定 ...

  6. javaScript中的匿名函数

    js中的匿名函数 js匿名函数 js中匿名函数的N种写法 直接上代码和截图 <!DOCTYPE html> <html> <head> <meta chars ...

  7. 匿名函数php作用,深入理解PHP中的匿名函数

    匿名函数的作用就是扩大函数的使用功能,在PHP(PHP培训 php教程 ) 5.3以前,传递Callback的方式,我们只有俩种选择: ◆字符串的函数名 ◆使用create_function的返回 在 ...

  8. python中匿名函数的作用_Python 中的匿名函数,你会用吗

    原标题:Python 中的匿名函数,你会用吗 概念 我们从一个例子引入. 这里有一个元素为非空字符串的列表,按字符串最后一个字母将列表进行排序.如果原列表是 ['abc', 'g', 'def'],则 ...

  9. python中匿名函数的作用_什么是Python中的匿名函数

    匿名函数 lambda x , y : x+y 1.匿名的目的就是要没有名字,给匿名函数赋给一个名字是没有意义的. 2.匿名函数的参数规则.作用域关系与有名函数是一样的. 3.匿名函数的函数体通常应该 ...

最新文章

  1. 调整html css表格位置,调整表格中的列宽(CSS / HTML)
  2. matlab 小技巧
  3. java strategy模式,Java Strategy 模式简介
  4. 树莓派安装python3.5_梦见树_周公解梦梦到树是什么意思_做梦梦见树好不好_周公解梦官网...
  5. UILabel(富文本)
  6. 对命令行程序调用及其结果显示的一点补充
  7. Centos7安装NVIDIA的驱动的坑
  8. Go基础-Mac中Go环境的安装以及实现第一个go程序hello world
  9. 快播资源地址转百度影音地址v1.2
  10. 在ROS中使用tensorflow进行人体姿态识别
  11. vue2项目中给echarts地图设置背景图和打点
  12. 【管理度量网络安全风险】丨上海道宁为您带来强大的Tenable漏洞及风险管理解决方案
  13. AAMAS 2021 强化学习论文70篇(自整理)
  14. 明星造型师Tara Swennen和Glamhive创始人Stephanie Sprangers再次汇聚全球造型、时尚、美妆和女性赋权领域“大咖”参加突破性数字盛会
  15. android 优化编译,Android-Easy-Compile(安卓编译优化系统)
  16. 关于SCCM软件分发管理分享
  17. 网页CAD开发快速入门
  18. 543、RabbitMQ详细入门教程系列 -【Confirm与Mandatory】 2022.09.05
  19. Android4.0.x 安全模式的分析
  20. Unity UI制作与鼠标光标

热门文章

  1. 公摊面积用计算机怎么计算,公摊面积如何计算?
  2. 第14届蓝桥杯 | 冶炼金属
  3. 用了十年的昵称badboy_我,轻舞飞扬,用QQ二十年了
  4. Kubespray v2.22.1 在线部署 kubernetes v1.26.5 集群
  5. 【GPT模型】遥感云大数据在灾害、水体与湿地领域中的应用
  6. Windows下如何查看sqlite数据库
  7. 十五天精通WCF——第十二天 说说wcf中的那几种序列化
  8. java close wait过多_我是如何确认线上CLOSE_WAIT产生的原因及如何解决的。
  9. TO_char函数的使用(将最完整的日期格式转化成只有年月日)
  10. excel学习-power query安装