00:00
呃,接下来呀,咱们来说说可选参数和默认参数啊,我在这里边儿呢,通过一个例子来让大家去理解这个可选参数和默认参数,它并不复杂,也是蛮简单的啊,有的时候我们定义函数的时候呢,或者说定义方法的时候,还是说经常会使用到的啊。那我们在这儿啊,新建一个文件。就是零二杠可选参数。和诶参数。和默认参数点TS啊,OK,那我在m.tS里边把它引入一下,这个并不复杂啊。点杠好搞定之后呢,我们来看看啊,可选参数还有默认参数,先把基本的代码的结构呢写出来啊,然后我们要定义一个函数啊,在后边是函数调用。那我这块传入,呃,提个需求啊需求。
01:01
呃,咱们定一个函数呢,怎么定义呢?干嘛呢?啊,第一个函数说,呃,传入姓氏和名字,那么可以得到姓名是吧?那必然应该是姓氏加上名字,那么它得到的就是姓名了,对不对?哎,要有这么一个函数,那我的需求是什么呢?说如果不传入。任何内容,那么就返回。默认的这个姓氏。是姓氏啊好,再来说需求,如果呀啊。不,如果说只传,只传入这个姓氏。那么就返回姓氏。再来一个需求。如果传入姓氏和名字逗号,那么返回来的就是姓名,我们来看看我这个需求啊,说不传入任何内容,那么默认返回来的就是姓氏,那这个时候我得看看名字存在还是不存在,对吧?如果说只传入了姓氏,那么就返回姓氏,如果说传入了姓氏和名字,那反过来就是姓名了,那这个函数该怎么定义呢?我们来一个cost,比如说叫get for name。
02:23
括号啊,这么写啊,等于方式。好,那首先应该有一个first name,嗯,这个应该是大写的啊,更合适一些,应该是字串类型,再来一个last name,它应该也是一个字串类型,返回值呢,也是字符串是吧?按照上面的需求,我肯定要做一个什么呢判断。判断啥呢?我主要要判断当前的这个last name,它存在还是不存在呀。对吧?好,如果说last name你没有给我传,那我干嘛呢,直接就返回性质呗,那就是first name。如果说last name给我传了,那就说明姓名肯定也是传了,毕竟这是两个参数吧,是吧,那我就返回first name,再加上来个下划线吧,再加上这个last name啊,注意这个里边他做的事情是什么,是判断名字是否传入了。
03:16
但是按照我上边的这个代码,现在的这个写法,有些需求肯定是满足不了的啊,比如说当函数调用的时候,can.log括号,我来一个什么呢?Get for name。像这种情况就有问题了是吧,他直接给我报错了,人家说如果不传入任何内容,那么就返回默认的什么呢?姓氏,姓氏默认应该是有值的,对不对?好。那我该怎么做呢?我可以在这个位置这么写啊,默认这个姓氏是东方,但是它仍然报错。是吧,说如果将来说你只给传入了一个姓氏,好,那我这个姓氏就是你传入的内容,但现在的情况是什么呢?你不给我传这个姓氏,好,我有个默认值,OK,没问题,那last name怎么解决呢?Last name就可以是什么呢?可传可不传的了,所以说我加上一个问号,那此时大家看一下,下边就没有报错了,为什么呢?说你这两个参数啊,你只是第二个参数是加问号了,加问号什么意思呢?可选可传可不传,那你仅仅是第二个参数可以传,或者说可以不传,那你第一个参数呢?
04:17
不要担心,我的第一个参数有默认值,如果说没有默认值,那他就报错了是吧,所以说给它一个默认值,东方现在我们再来看啊,我如果什么也不穿。好,返回来的是不是就是东方吧,啊注意什么也不穿,反回来的是东方,好,那我这个时候啊,只。传入姓氏。上面这个是啊,什么也不穿。如果说我要只传入姓氏,那这个位置就是get for name,比如说给他来一个什么呢?诸葛保存一下,那他得到应该是什么?是不是也是这个姓氏吧?啊,看一下就是诸葛是吧,上面是东方,下边是诸葛,那如果说我传入姓氏和名字。
05:03
can.log括号,那这个该for name括号里边,比如说来一个诸葛逗号,再来一个孔明,哎,再保存一下,我们再来看一下。结果是不是就是诸葛孔明吧?OK,这些需求呢?咱们达到了,那在这里边谁是默认参数,谁是可选参数呢?什么叫可选参数,什么叫默认参数呢?是吧?默认参数指的是什么函数?在声明的时候,或者说函数在定义的时候啊,这都行,那么内部的这个行参或者说参数啊,这都行。那什么呢?有自己的默认值,那么此时这个参数就叫做默认参数,此时的这个参数就可以叫什么呢?默认参数好,那什么叫可选参数呢?说函数在声明的时候啊,内部的这个参数呢。诶参数啊,使用了什么问号进行修饰。
06:05
逗号,那么就表示。当前,那么就表示该参数可以传入,也可以不用传入。啊叫什么呢?叫做可选参数,这是两个概念啊,这两个问题呢,也就都给大家说完了啊,那这种情况呢,以后咱们还是比较常见的,也是比较常用的啊,然后课后的时候把这两个东西理解一下,并不复杂,也是比较简单啊,一看就会,然后自己多练练就搞定了。
我来说两句