00:00
Hello,大家好,我是风雨,那我们这节课呢,我们接着还是带来了函数啊,因为这个函数在ES6里面扩展呢,还是比较重要的一个部分啊,那这节课我们来看什么呢?我们来看一下函数的另外一种形式啊,就是我们所说的这个箭头函数。箭头函数,首先箭头函数怎么写呢?箭头是这样写的哈,这个括号,然后呢,等号箭头啊箭头那这边呢,这个划括号,那划括号这边呢,呃,你可以你可以这个写啊,也可以不写,如果这里面只有一条语句的时候呢,是可以不写的,那那条语句呢,就是这个函数的默认返回值啊,这个我们大概了解一下,咱们来看一下这个东西怎么来用啊,怎么来用。OK,那么首先我们要来讲这个箭头函数的时候呢,诶,我们来来瞅一眼哈,我们来瞅一眼,我们呢,比如说我们来let一个A一个数组,那么这个数组里面呢,有很多项,诶四项。那么这个时候呢,我们来诶let一个新的一个数组arra,那它呢,等于array点上我们来调用一个数组的map方法啊map方法,那map方法呢,接受一个呃,一个函数对吧,一个回调函数,那回调函数里面的第一项呢,是每一项的值value有对吧?第二项呢,是个K,是我们这个当前这个值对应的下标是吧?还有第三项,第三项就是元素组A啊这相当不重要,我们不要了是吧?我们先来看一下这个东西,诶能不能输出,哎,比如说输出个value。
01:28
再来。嗯,这个删掉啊,你在上面一起打印就可以了。来对号KOK来保存,你发现它是是你看01234对吧,诶今天方我写个11啊12。十三十四来保存来十一十二十三十四第一个呢是value是值对吧,第二个呢是当前这个值在元数组里面的下标啊,这个呢是K啊是K,那我们要讲箭头函数呢。我们来看一下这地方有个呃,有一个这个回调函数,那么箭头函数的一般作用呢,就是用于来进行这个回调函数的时候啊,代替回调函数的用普通的回调函数要用这种写法,看起来太多了,对吧?那我们来看一下,如果说我们使用箭头函数来代替刚才那个呃回调函数,普通函数的写法数该怎么写呢?首先它有两个参数啊,Value有一个K,对不对,那我们来括号,要把value写上,逗号K写上,那这是参数,紧接着等号大于号,然后呢,来输出什么呢?我们在这里面来打印一下我们的这个value。
02:31
逗号,哎,K,我们来看一下这样能不能行,好吧,来宝存你发现一模一样对吧?诶没有什么问题,那这个地方呢,就是函数的参数,这里边呢,是函数的这个代码块对吧?哎,它函数体它里面来执行的这些个逻辑啊,进行这个逻辑,然后要注意的是我们的这个箭头函数呢,哎,它其实。当我们这样右边写上括号的时候呢,它是没有返回值的啊,没有返回值的,那这个呢,我们大概了解一下,我们先来再回去看一下刚才那个写法啊,哎,Let一个二等于一个AR,点上map括号来个普通函数。
03:08
那比如说当我接收到它里边每一项的时候呀,我们接收这个value的时候呢,我们要返回一个值来返回一个值来看一下。Return,返回什么呢?返回这个当前的每一项的值来乘上,诶,乘上一个二是吧,返回这个值出去,然后放到一个新数组里面去,最终我们来输出一下这个新的数组。二来保存它变成一个22 24 26 28是吧,每一项乘上二以后,返回到一个新数组里边,最后把它输入出来,二输入出来,那这个呢,是我们这个map的一个。比较普通,比较常规的,比较常见的一种这种用法对吧,比较用法,那这时候呢,我们比如说我们这地方,你看函数是有返回值的,对不对,那有返回值的时候呢,我们如果说用箭头函数来代替它怎么做呢?我们可以这么做。
04:02
我们可以这么做来看一下哈,哎,Let a2等于这个A点上map,那回调函数呢,我们就使用箭头函数了,那么箭头函数呢,诶接受两参数对不对,诶两参数,那两参数这地方我们只需要使用一个,那我们也可以只写一个对吧?那只写一个时候呢,可以这么写啊,你可以写个可以用括号括起来没问题,但是大部分情况我们在使用箭头函数的时候,如果说它只有一个参数的时候,括号都不用写了,直接写value就可以了,Y就可以了,那括号右边我们是需要返回一个值,Y有乘二,那我们呢,可以这么写啊,Y有。乘二。就可以了啊,这个就是一个回调函数啊,非常的简便,对不对,那最终我们再来输出一下我们的这个二为二啊为二,我们来乘个三吧,哎,来乘个三。来保存一下,是不是33 36 39 42啊,这每一项乘上三以后,返回到新数组里面,那这样一写是不是就优势很明显了呀。
05:02
箭头函数是不是显得非常的简洁对吧?那么这个箭头函数跟我们上面写这个到底有什么区别呢?区别就在于看好了哈,首先这个箭头的左边呢是函数的参数,当函数的参数只有一项的时候。可以直接写参数就可以了,不需要用括号,当没有参数,或者说参数大于一项的时候,就至少是两项的时候,我们需要用个括号包起来啊,需要用括号包起来,如果说我左边没有参数,那就写个括号啊,在这放着就可以了啊,这是没有参数,如果是有两项及两项以上,那我们还是用括号把它包起来,这些参数啊,这些参数呢,就写到里面去啊,这是左边,那么右边呢,我们来把这个换回去。右边大家发现这地方没有画括号了是吧,那我们正常输入值,那如果说我写上一个划括号呢,你会发现它这里边通通变为了一个undein。啥意思呢?意思就是说当箭头函数的右边啊,没有划括号的时候,它就是说把右边这个值return出去啊,它就相当于相当于什么,相当于你看哈这个地方我们是value。
06:14
诶,乘上三,那么这个这一块的这个箭头函数,我把它提出来。他这一块呢,诶就相当于。相当于什么呢?相当于我们刚才写的这个function,哎,然后呢,这个接收个参数。诶接受个参数这个value是吧,诶画括号里边来进行return一个,诶value乘上这个,这个乘上三,哎这种写法,哎,它是相当于这种写法的,能明白吗?哎,相当于的哈,这个要注意啊,要注意。短一点啊,这种写法跟这种写法是完全等价的啊,它就相当于这种一个参数啊,右边呢,你右边这个有个返回值对吧,那我当我有返回值的时候,我可以我不写画括号的时候,那么右边这一块呢,就是返回值了,那如果说我这个函数里边可能有一种情况啊,什么情况呢?这种情况我们来看一下这个。
07:19
比如说相当于这个,他不直接这么做,他要怎么做呢?他可以做,比如说我先假装啊,先假装,比如说把它加上烟啊,再来这个。等于一个值是吧?哎,Y一个let一个a number let一个number等于哎,这个每一项的值来加一,加完一以后呢,我还要把这个number来等于啊,它每一项的值再来,呃,乘上一个一个三啊,再来除上一个二啊,最终呢,我要来再来把这个number给它返回出去。哎,最终我再来把它这个number给他返回出去,当我这里边啊,这么这么写的意思就是说,当我这里边逻辑比较多的时候,我最终只返回一句的时候,我们我们这样怎么写。
08:01
没办法写了是吧,我总不能在这边诶先加一,再把你这个乘三除二什么巴拉巴拉的,最终再把你反去吧,所以这时候就不好写了,对不对,不好写了,那这时候该怎么做呢?诶这时候我们呢,可以在这一边呢,用过括号来把它括起来,把括号括起来,把括起来我们来试一下哈,我们在下面来写给大家看一下。诶在下边这样是吧,这样是直接返回,那当我们写到括号呢,就不会再直接返回了,它默认返回就变成了昂范,那昂范时候呢,我们可以把这种逻辑诶通通的写到这里面来,那写到这里面来,最终我需要返回个值吧,那我再显示的定义一个return来返回一个number就可以了,能明白吗?那这个呢,是我们这个箭头函数啊,那我们来看一下这个东西,如果说。我需要使用花括号是怎么写呢?我们可以这么写啊,画括号。然后回撤一下,我们可以在里面显示的来进行return啊return,比如说return value啊,乘上一个这个三对吧,来乘个三,刚才我们没有划括号的时候呢,它都是你发对不对,那现在我们以写上画括号以后呢,就来给它显示的写上return,那现在呢,诶它这个值还是没有问题的,能明白吗?那这个呢,是我们这个箭头函数的一个常规的用法啊常规用法,那么在使用这个箭头函数的时候,一定要注意的一点就在于。
09:18
首先箭头函数的那一步呢,是没有this的。它是没有认的,它的this思呢,是它副作用域的this思啊,副作用域的this,那是副作认是谁呢?我们来看一下当前这个箭头函数是处在哪个中域里面。处在哪个状语,是不是处在这一个全局状语呀,那全局状域的this是不是指向window的呀?所以当我们来使用这个呃,箭头函数作为回调函数的时候,你在它里面使用this的时候,这个this是指向window的。啊,指向window,你看都是指向window,为什么呀,因为我们说了箭头函数第一点没有this,它的this是负极的this,你使用的是负极的负极,这个这个作用域的this,啊,这个this这是第一点,那第二点。
10:10
第二点,由于第一点没有认识对象,箭头函数内部没有认识对象,所以呢,咱们箭头函数一定不能用来作为构造函数。Y。Y为什么不能用来作为构成函数呢?哎,因为它不能跟六这个命令来进行这个一起来执行,因为我们六呢,它在里边啊,会形成一个对象反馈对象,最终,而且我们在里面定义的时候呢,这些属性啊,这些值啊,通通都是挂载到那个this啊,通过this这个对象下面去,来来来挂载到那个六生成对象下面去了,对不对,那这个箭头函数呢,ES6里面明确的规定啊,不能跟六一起使用,跟六一起使用的时候是会抛出错误的啊,所以它不能用来作为过载函数。那么第三个这个建头函数内部呢,是没有argument对象的,哎,没有argument,比如说我们可不可以使用不定参呢?诶如果说我不给你参数是吧,用括号代替就可以了,我在里面呢,使用一下argument。
11:12
TS我们来看一下它argument啊,我们这方也不输出了,我们这地方也不输出了,我们就来看一下arguments就可以了,你发现啊报错了是吧?诶它这个是没有argument的,没有定义,所以呢会报错,那我就要使用怎么办呢?啊,我就要你的这三个参数怎么办呢?我们可以使用rest参数来解决这个问题吗?对不对,我们刚刚说的这个rest参数是可以解决的是吧?哎,Rest参数可以解决,那这地方我们输出rest来保存是不是那三个参数啊对吧?第一个这个value值,第二个K,第三个元数组对不对,我们可以用rest参数来代替这个argument。Argument,那第四个呢,呃,这个呢,我们得到后面去学到一个尖函数啊才能知道,那这个呢,它不能跟这个I的命令啊来进行搭配使用,因为呢,它不能作为这个generate函数啊,这个呢,我们学到generate的时候,再来详细的整理这个问题啊,这个呢是我们使用。
12:09
这个建的函数需要注意的地方啊,基于我们刚才讲的那些点呢,所以大家一定要注意了,我们建头函数呢,你就不能跟它什么扩呀,Apply呀,以及B呀等等这种方法来进行改变this指向了,为什么呀,因为它内部是没有this的,对不对?你的this使用的是负极的,那么你要使用呢,你要使用Co啊以及棒的呀,你改变你的this的时候,其实你会发现this不是自极的,所以不能改变你只能改变你,因为你负极那个this负极的,你要改变负极this的时候,只能通过负极调用的时候,再来通过那个,呃,改变this指向的那几个方法啊,再来进行改改变啊,它呢是没有权利来改变负极的类似指向的,对不对?所以这个地方呢,要注意啊,它不能跟我们的这个泵的Co以及plan来进行使用,好吧,那这个呢,是我们的箭头函数,那么箭头函数呢,在延论里面相对来说还是比较重要的,大家下去一定要多多练习啊,好了,那就这节课就到这里啊,谢谢大家,再见。
我来说两句