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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • php递归函数详解_php递归优化费波那切

    php递归函数详解_php递归优化费波那切PHP递归算法代码:复制代码代码如下:<?php//定义PI一分的角度的值define(“PII”,M_PI/180);//新建图像资源,并定义其背景为白色,前景色为黑色$im=imagecreate(670,500);$white=imagecolorallocate($im,0xFF,0xFF,0xFF);$g=imagecolorallocate($im,0x00,0x00,0x0…

    2022年8月11日
    8
  • 循环队列 基本概念「建议收藏」

    循环队列 基本概念「建议收藏」循环队列是队列的一种特殊形式。首先介绍队列,然后引申出循环队列。队列又称为“先进先出”(FIFO)线性表限定插入操作只能在队尾进行,而删除操作只能在队首进行队列也可以采用顺序存储结构或链表结构来实现,分别称为顺序队列和链队列队列的顺序表示—顺序队列用一组连续的存储单元依次存放从队首到队尾的元素,附设两个指针head和tail分别指向队首元素和队尾元素的位置,(有的地方用f…

    2022年5月6日
    61
  • matlab里读取txt文件里指定列怎么办_matlab读取音频文件

    matlab里读取txt文件里指定列怎么办_matlab读取音频文件问题描述:想读取一个txt文本中的很多数据。数据之前有几行是中文,然后才是数据,如何用MATLAB读取txt文件中标识符所对应的列啊,多谢指教了!文件大概是这样的:你好欢迎来到…………sum1sum2sum3sum4111111111122222222223333333333444…

    2025年9月17日
    3
  • javaSocket网络编程

    javaSocket网络编程昨天和今天了解了一下这个网络编程;服务端importjava.io.*;importjava.net.*;publicclassTestServer{publicstaticvoidmain(Stringargs[])throwsException{ServerSocketss=newServerSocket(6666);while(true){Sockets=ss.accept();

    2022年6月16日
    35
  • 查找-散列查找

    查找-散列查找1.散列的相关概念散列技术是在记录的存储位置和它的关键字之间建立一个确定的对应关系f,使得每个关键字key对应一个存储位置f(key)。查找时,根据这个确定的对应关系找到给定值key的映射f(key),若查找集合中存在这个记录,则必定在f(key)的位置上。这里我们把这种对应关系f称为散列函数,又称为哈希(Hash)函数。按这个思想,采用散列技术将记录存储在一块连续的存储空间中,这块连续存储空间称为

    2022年5月14日
    46
  • 2017过去了,2018来了「建议收藏」

    2017那些过往的岁月,留给自己!

    2022年2月26日
    37

发表回复

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

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