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一旦被捕获,就不再发生变化。

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java中array的方法_array java

    java中array的方法_array java题目要求为:卡拉兹(Callatz)猜想:对任何一个自然数n,如果它是偶数,那么把它砍掉一半;如果它是奇数,那么把(3n+1)砍掉一半。这样一直反复砍下去,最后一定在某一步得到n=1。当我们验证卡拉兹猜想的时候,为了避免重复计算,可以记录下递推过程中遇到的每一个数。例如对n=3进行验证的时候,我们需要计算3、5、8、4、2、1,则当我们对n=5、8、4、2进行验证的时候,就可以直接判定卡拉兹猜想的…

    2026年2月1日
    5
  • 【Linux】fatal: unable to access ‘https://github xxxxxxxxx的解决方法

    【Linux】fatal: unable to access ‘https://github xxxxxxxxx的解决方法fatal:unabletoaccess‘https://githubxxxxxxxxx的解决方法报错:输入gitclonehttps://github.com/Avnet/bdf.git后报错如下:解决办法:将命令中的https改为git。即:将命令改为gitclonegit://github.com/Avnet/bdf.git,成功:…

    2022年8月22日
    9
  • 手机号码归属地查询数据库下载「建议收藏」

    手机号码归属地查询数据库下载「建议收藏」只需要输入前7位即可查询所在地access数据库,excel的可以直接查询哦,还有htm格式下载。有15万5千多条记录电话区号code字段2009年01月02日整理完成支持移动159号段和联通153号段包含最新的151、155、157号码段的归属地数据手机号码归属地信息,可以详细查询到手机号码的开户地信息,包括该号码所属省份、城市、长途区号以及该号…

    2022年7月22日
    17
  • 深信服SCSA安全认证工程师

    深信服SCSA安全认证工程师深信服SCSA安全认证工程师考试实验环境在线学习课程讲师在线学习视频(SCSI)学员在线学习视频(SCSA)在线题库考试考试入口试卷自动批阅错题集记录联系方式微信联系18849911

    2022年6月20日
    55
  • js后退一步[通俗易懂]

    js后退一步[通俗易懂]window.history.back(-1);只后退一步,不进行刷新location.href=document.referrer;后退一步并刷新,document.referrer获取上一个页面的url转载于:https://www.cnblogs.com/jianghaidong/p/4971592.html…

    2022年7月25日
    30
  • 软件测试面试题及答案2020_软件测试面试题目100及最佳答案

    软件测试面试题及答案2020_软件测试面试题目100及最佳答案1.性能测试关注的指标是什么?从外部看,性能测试主要关注如下三个指标:吞吐量:每秒钟系统能够处理的请求数、任务数响应时间:服务员处理一个请求或一个任务的耗时错误率:一次请求中结果出错的请求所占比例从服务器的角度看,性能测试主要关注CPU、内存、服务器负载、网络、磁盘IO等。2.性能测试是怎么做的?/如果你要进行性能测试,你是如何展开操作的?1.确定关键业务,关键路径;2.确定测试的关键数据。比如并发量,响应时间,循环次数等;3.准备测试环境,完成脚本录制或脚本开发;4.执行测试,观察或监控输出参数,比如吞

    2022年9月1日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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