js中的匿名函数_js匿名函数怎么定义

js中的匿名函数_js匿名函数怎么定义定义:匿名函数顾名思义指的是没有名字的函数,在实际开发中使用的频率非常高!也是学好JS的重点。匿名函数:没有实际名字的函数。首先我们声明一个普通函数://声明一个普通函数,函数的名字叫fnfunctionfn(){console.log(“张培跃”);}然后将函数的名字去掉即是匿名函数://匿名函数,咦,运行时,你会发现报错啦!function(){console.log(“张培跃”);}到此,你会发现单独运行一个匿名函数,由于不符合语法…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

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

匿名函数:没有实际名字的函数。

首先我们声明一个普通函数:

//声明一个普通函数,函数的名字叫fn

function fn(){

    console.log(“张培跃”);

}

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

//匿名函数,咦,运行时,你会发现报错啦!

function (){

    console.log("张培跃");

}

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

//匿名函数在其它应用场景括号可以省略

(function (){

    //由于没有执行该匿名函数,所以不会执行匿名函数体内的语句。

    console.log("张培跃");

})

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

(function (){

    //此时会输出张培跃

    console.log("张培跃");

})()

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

(function (str){

    //此时会输出张培跃好帅!

    console.log("张培跃"+str);

})("好帅!")

匿名函数的应用场景

1、事件

<input type="button" value="点我啊!" id="sub">

<script>

    //获得按钮元素

    var sub=document.querySelector("#sub");

    //给按钮增加点击事件。

    sub.onclick=function(){

        alert("当点击按钮时会执行到我哦!");

    }

</script>

2、对象

var obj={

    name:"张培跃",

    age:18,

    fn:function(){

        return "我叫"+this.name+"今年"+this.age+"岁了!";

    }

};

console.log(obj.fn());//我叫张培跃今年18岁了!

3、函数表达式

/将匿名函数赋值给变量fn。

var fn=function(){

    return "我是一只小小小小留下,怎么飞也飞不高!"

}

//调用方式与调用普通函数一样

console.log(fn());//我是一只小小小小留下,怎么飞也飞不高!

4、回调函数

setInterval(function(){

    console.log("我其实是一个回调函数,每次1秒钟会被执行一次");

},1000);

5、返回值

//将匿名函数作为返回值

function fn(){

    //返回匿名函数

    return function(){

        return "张培跃";

    }

}

//调用匿名函数

console.log(fn()());//张培跃

//或

var box=fn();

console.log(box());//张培跃

模仿块级作用域

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

if(1==1){//条件成立,执行if代码块语句。

    var a=12;//a为全局变量

}

console.log(a);//12

 

for(var i=0;i<3;i++){

    console.log(i);

}

console.log(i);//4

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

(function(){

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

})();

尝试块级作用域:

function fn(){

    (function(){

        var la="啦啦啦!";

    })();

    console.log(la);//报错---la is not defined

}

fn();

匿名函数的作用:

1、通过匿名函数可以实现闭包,关于闭包在后面的文章中会重点讲解。在这里简单介绍一下:闭包是可以访问在函数作用域内定义的变量的函数。若要创建一个闭包,往往都需要用到匿名函数。

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

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

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/186348.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • idea 2021.03激活码【在线注册码/序列号/破解码】

    idea 2021.03激活码【在线注册码/序列号/破解码】,https://javaforall.cn/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

  • 计算机启动显示安装程序正在启动服务,安装程序正在启动服务需要多久

    计算机启动显示安装程序正在启动服务,安装程序正在启动服务需要多久大家好,我是时间财富网智能客服时间君,上述问题将由我为大家进行解答。安装程序正在启动服务需要多久,这个主要看软件大小,安装完成就会自动运行的,要是系统不断的提示,这个就不一定了,时间可能会很久的,需要耐心等待。程序,香港和台湾对英文procedure的中文翻译,编程语言中的procedure在大陆翻译为“过程”,在港台和其他领域则翻译为“程序”。在大陆于计算机科学、电脑工程、电子工程、电机工程、机…

  • MySQL EXPLAIN执行计划详解

    MySQL EXPLAIN执行计划详解详细介绍了MySQLEXPLAIN执行计划的各个字段的含义以及使用方式。

    2022年10月17日
  • 了解如何关闭selinux[通俗易懂]

    了解如何关闭selinux[通俗易懂]1.查看SELinux状态1.1getenforcegetenforce命令是单词get(获取)和enforce(执行)连写,可查看selinux状态,与setenforce命令相反。setenforce命令则是单词set(设置)和enforce(执行)连写,用于设置selinux防火墙状态,如:setenforce0用于关闭selinux防火墙,但重启后失效[roo…

  • 数据管理

    数据管理

  • C/C++ 最常见50道面试题

    C/C++ 最常见50道面试题C/C++经典面试题面试题1:变量的声明和定义有什么区别为变量分配地址和存储空间的称为定义,不分配地址的称为声明。一个变量可以在多个地方声明,但是只在一个地方定义。加入extern修饰的是变量的声明,说明此变量将在文件以外或在文件后面部分定义。说明:很多时候一个变量,只是声明不分配内存空间,直到具体使用时才初始化,分配内存空间,如外部变量。面试题2:写出bool、int、……

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号