js匿名函数和箭头函数_函数式编程

js匿名函数和箭头函数_函数式编程js匿名函数、箭头函数,以及他们的区别匿名函数箭头函数区别

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

Jetbrains全系列IDE稳定放心使用

js匿名函数、箭头函数,以及他们的区别

  • 匿名函数
  • 箭头函数
  • 区别

1.匿名函数

简单点说就是没有名字的函数,在声明函数时不写函数名称,(将函数赋值给变量)叫匿名函数。

匿名函数可以有效的保证在页面上写入Javascript,而不会造成全局变量的污染。

//普通函数
// 1.定义方法
function buy(){ 
   
	console.log('张三去买东西');
}
// 2.调用方法(不调用不执行)
buy()
//匿名函数
function (){ 
   
	console.log('没有名字')
}
//会报错

没有名字的函数会报错,这时候用一个括号把它包起来就不会报错了,然后在最后面加一个括号就可以马上执行这个函数了——直接调用,也叫自执行函数
作用: 避免多人开发时变量冲突,自执行函数只能调用一次。

//参数直接写在括号里
//写法1
(function (sum){ 
   
	console.log("JavaScript"+sum);
})("你好")
//输出内容为 JavaScript你好

//写法2
~function(){ 
   
	console.log('立即执行匿名函数!')
}()

//写法3
!function(){ 
   
	console.log('立即执行匿名函数!');
}()

匿名函数不能够提前调用,会报错,需要在函数声明之后调用。

// 将函数赋值给变量,通过变量调用
var fn = function(){ 
   
    console.log("hello js");
}
fn(); //输出 hello js

2.箭头函数

箭头函数表面上相当于匿名函数,并且简化了函数定义。

  • 当箭头函数只包含一个表达式时,连{…} 和return都省略了。
//相加
x => x + x
//即 function (x){ return x + x }
  • 不仅包含一个表达式时
(x,y) => { 
   
	return x + y;
}

3.区别

对比:

var x = function(){ 
   console.log('普通匿名函数')};
var y = ()=>{ 
   console.log('箭头函数')};
x();
y();

本质上都是函数,箭头函数是匿名函数的简写形式。最大区别就是this指向

普通函数:this指向直接调用者,非严格模式下没有找到直接调用者就指向window(严格模式下this是undefined)。

箭头函数:
1.没有prototype(原型),所以箭头函数本身没有this。

2.不能当作构造函数,即不能使用new命令。

3.不能使用arguments对象,函数体内不存在该对象。可使用rest参数代替。

4.* 没有调用者,捕获其所在(即定义的位置)上下文的this值, 作为自己的this值。this一旦被捕获,就不再发生变化。

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

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

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

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

(0)


相关推荐

  • ASP.NET MVC 教程学习「建议收藏」

    ASP.NET MVC 教程学习「建议收藏」1.Why:为什么需要ASP.NETMVC本章主要为大家汇总了为什么学习Asp.netMVC替代WebForms,产生ASP.NETMVC的需求是什么,只有更好的理解了为什么需要MVC,出于什么目的开发的MVC框架,用MVC框架来弥补什么或是提升什么,才能利用其开发出最高效最满意的Web系统。 为什么会出现ASP.NET平台下的MVC框架?说明:本文摘自InfoQ,是作者JonathanAllen2007年发布的一篇的文章,首先描述了WebForms的优

  • 【机器学习详解】SMO算法剖析「建议收藏」

    【机器学习详解】SMO算法剖析「建议收藏」本文力求简化SMO的算法思想,毕竟自己理解有限,无奈还是要拿一堆公式推来推去,但是静下心看完本篇并随手推导,你会迎刃而解的。推荐参看SMO原文中的伪代码。**1.SMO概念**===========上一篇博客已经详细介绍了[SVM原理](http://blog.csdn.net/luoshixian099/article/details/51073885),为了方便求解,把原始最优化问题转化成了其对偶问题,因

  • 找不到指定的模块

    找不到指定的模块找不到指定的模块。(异常来自HRESULT:0x8007007E)

  • pycharm 激活码 2021【2021.10最新】

    (pycharm 激活码 2021)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。https://javaforall.cn/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~2JTX0APX6F-eyJsaWNlbnNlSWQiOi…

  • 记录:java.lang.Integer cannot be cast to java.lang.Long…【解决方案】

    记录:java.lang.Integer cannot be cast to java.lang.Long…【解决方案】记录:针对报错:java.lang.Integercannotbecasttojava.lang.Long..【解决方案】

  • java 异步调用方法_java异步调用方法有哪些?如何实现异步调用?

    java 异步调用方法_java异步调用方法有哪些?如何实现异步调用?你知道java异步调用方法都有哪些吗?下面的文章内容,就对这方面的问题做了一下整理,一起来看看java异步调用的方法吧!1、利用Spring的异步方法去执行注:没有返回值在启动类又或者是配置类加上@EnableAsync注解。packageme.deweixu.aysncdemo;importorg.springframework.boot.SpringApplication;importo…

发表回复

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

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