00:00
恩来继续说啊,刚才给你们说这么两个练习啊,第一个呢,叫做一个定一个函数,判断一个呃数字是否是偶数,如果是呢,则返回处,如果不是呢,返回false这么一个这函数是不是非常简单呀?诶那首先我们来定一个function function我们叫一个什么呢?叫做一个,叫做一个is思偶啊is is is诶这偶数也不会英文不会说是吧?就这么写了啊,你要知道什么意思啊,Is思偶意思什么意思,是不是是吧?偶就是偶数意思表示判断这个数是不是偶数,那你要判断这个数是不是偶数,你是不是需要先传进来一个参数啊哎,你判断谁对吧?来一什么呢?来一个number啊number,那我们来说怎么来判断它是不是偶数啊呃,如果我们这个number叫什么呀?摩也二如果等等于零,也就是说它和二去除干嘛呢?没有余数是不是证明它?
01:00
是偶数,是偶数怎么办?是偶数是不是返回处,否则是反应for呀,那我这块怎么办。诶,我还用不用判断了,用不用判断,我用这样来一个if,它如果如果它返回我是不是就re,如果它是时候,我是不是一个for,如果不是else,我是不是return一个false,先说这么写行不行,诶这逻辑比较清楚吧,如果number模拟二等等于零,也就说它没有余数,没有余数代表什么呀,是偶数,是偶数我就返回一个处,否则呢,我就返回一个false,我们先看行不行啊,现在行不行,来我这来测试一下,直接来什么呢?来一个Y,一个t result等一个这个is,哦,O来什么呢?来一个这个三三,我这来写一个直接来一个cancel.log一个re result等于加上一个这个result,我们来看已保存走你。
02:02
False false证明什么三不手是吧?来一个什么呢?来一个二一保存走,你true是不是就是20是吧?哎,确实好使了对吧,好使了,但是这么写吧,有点也行也行,但是这么写呢,不够优雅,怎么写更优雅呢?我们发现number模一二等等于零,这是一个式子吧,这个式子的返回值是什么呀?它的返回值是不是就是一个处啊,所以前面的写对应都是废话,直接干嘛呢?CTRLX把这些都去掉,直接re return一个看这能看懂吗?我们先看结果啊,先看结果,我这一保存走你什么东西处20手数吧,我来一个诶来一个十五一保存是force呀,OK吗?OK了,这能看懂吗?诶,Number模一下等等于零,这整个你要这样看不懂可以这样什么啊,整个套一块,但是其实这不用套啊,不用套,这是一个整体啊,它整体是一个式的,那整体是一个式的,这个式子是不是就会有一个这个结果呀,Number模一样,如果它有余数,也就说什么呀,它不等于零,是不是就返回false呀,False是,是不是它就不是偶数啊,如果等等于零没有余数是什么呀?是true是不是就是偶数啊?所以干嘛呢?直接返回它的这个结果,而不用再什么了,不用再判断了,直接把这个作为结果就好。
03:30
判回了,判懂了吗?哎,这是我们说这个啊,叫做一个是不是偶数啊,是不是偶数,所以这你一定注意,就没有必要再去判断了啊,就没有标记的判断了,因为刚才你那判断实际上什么呀,这际上都是废话,如果是true我就返回true,如果是false我就返回false,那你是不是直接返回就完了,哎直接返回就完了啊好,这是我们说的一个,它判断这个偶数,下边一个呢,叫做定义一个函数,可以根据半径来计算一个圆的一个面积,并返回结果,圆面积的公式是什么呀?哎,是不是派二方啊哎派二方派R方派是多少啊?哎,直接写3.14就完了,哎,派3.14,那是不是派乘以一个二,再乘以一个二啊哎,3.14乘以二乘以二,这就是我们这圆的一个面积,所以那我们来第这个函数怎么定义呢?来一个方个人方个式,我们就叫什么呢?叫做一个面积吧,来叫做一个面积,面积呢,我这来既然你要计算圆的面积,那你得知道谁呀,你是不是得知道半径啊。
04:30
啊,哎,半径,所以我需要传一什么呀?二过来啊,二过来,那我们说圆的面积是多少?就是3.14乘以二再乘以二是不是就是派R方法,哎,那这个就是我们要算的那个圆的面积,那怎么办呀?哎,Re to r是不是把这个作为结果是不是返回就行了呀?哎,返回就行了,来那我们这块来算一个,比如说我这来一个来一个这个re Su result等于一个这个面积来一什么呢?十计算半径为十的这个圆的一个面积,直接来一个,这个上边有一个啊,直接复制一个。
05:10
输出一下这个结果,然后一保存,咱们来看走你诶是314,诶你来一个五,它算的就是半径为五的圆的这个面积啊,是这么一个东西啊,直接把这个结果给它返回就行了,像这种函数都是什么呀?理解啊比较简单的一行就够了啊一行就够了,好,这块看明白了吧,好接下来呢,我们再再说一个啊那这里边我们来说说一个什么东西呢?我们再来写一个函数干嘛呢?诶咱们创建一个这个函数,诶可以什么呢?诶可以在我们这个控制台中干嘛呢?诶输出一个这个人的这个信息啊,输出一个人的信息,比如说什么呢?可以什么呢?可以输出这个人的什么呀,这个name age gender,还有这个呃的dress啊可以输出这四个信息,那我们来看这怎么写啊,什么意思,你先看着写一个方,写完就明白了,方我教一什么呢,叫做一个这个。
06:10
诶叫做一个c hello吧,诶say hello写这么一个,然后在这个方式里边呢,我传四个参数,定义四个行参,一个叫什么呢?叫做一个name,然后来一个age,然后来一个这个真的这音地啊,然后来一个dress,诶我是不是接收了四个参数啊好,然后呢,我这来一个cancel.log log于什么呢?看着怎么写了,写一个,嗯我我是然后加上一个这个name,然后加上一个什么呢?诶今年我加上一个这个age,再加上一个诶碎了。然后呢,这能看懂吧,再拼一个串吧,诶然后呢,我是一个什么呢?哎,我是一个诶然后加上一个这个粘的,然后再加上一个人,诶然后呢,再加上一个哈,这个东西写的什么呀?哎,我住在,然后再加上一个这个呃的这哎那这块我写这东西能看懂吗?是不是把这东西整个拼成一个大长串啊哎,我叫什么?今年我多大了?我是一个男人还是女人,我住在哪?是整个拼成一个大长的一个字符串,然后在我们的控制台里去输出啊来输出来把这个函数定义完了,我们来看看啊,直接掉一个c hello,我这来一个什么呢?来一个孙悟空,然后来一个这个18,然后来一个男,然后来一个这个花果山,我是不是写这么一个东西啊,但注意它是一个紫串预保存看到。
07:52
啊,那你说控制台应该什么效果呀。哎,我一保存走你,诶我是孙悟空,今年我18岁了,我是一个男人,我住在花尔山,诶挺傻的是吧?诶那你说我写一个什么呢?我写个换一个换一个这个猪八戒,然后呢,来一个28,我这来一个这个高老庄,我这一保存走你喂,我是猪八戒,今年28了,我是一个男人,我住在高老庄是不是就OK了呀?哎是这么一个作用,也就是说他可以教你这个信息是不是直接在这个控制台里就给你输出了呀,但是注意了,他这有没有问题啊。
08:30
有没有哪个地方你觉得它不太好的地方?现在我这是不是需要四个参数,四个参数是不是有点有点多呀,哎,有点多,那假如说我这现在就是四个信息,假如说我还想干嘛呢?我还想输出一下他他女朋友是谁,我还想输一下他的身高,他的体重,他的一系列信息,信息可能更多,我是不是需要更多的参数啊,可能我需要十个,我可能我需要40个,这参数是不是太多了呀,参数太多,多打了我就喜欢参数多。
09:03
但是多有个什么问题啊,多你有可能就容易什么呀,乱怎么叫乱呢?哎,我第二个是性别呀,还是什么呀,我一想好像是住址,诶住址我们来看啊,我一保存这一输出,我猪八戒今年28岁了,我是一个高老庄人也行是吧,我住在南是不是就不对了,那这就不对了,所以注意当这个参数多了以后,这东西是不是就容易。容易乱呀,诶容易乱啊,所以像这种东西,这种参数特别多的呢,我们写的时候一定要注意,首先你要注意它这个顺序问题,那么说了,那有没有更好的方式能解决这个问题,现在干嘛呀,他让我传四个参数,如果我以后参数更多了,可能让我传十个,让我传100个,让我传1000个,是不是可能更多呀,但是情况可能不不不会像我说那么夸张,但是会有这种情况出现,那当你这么样,你一个一个传的时候,是不是它很麻烦呀,那么想想有没有什么更方便的办法。
10:05
诶,我这是四个变量吧,四个变量那我一个一个传比较麻烦,我给他打包在一起给他传过去行不行。行不行,或者说我给它装到一个塑料袋里,一块给它发过去行不行,诶那我们来看看啊,我们来干嘛呢?在这儿我来创建一个这个对象,直接画一个什么呢?诶画一个这个obj等于一个大框,我是不是创建了一个对象啊,对象我来一个诶name冒号来一个这个什么呢?来一个孙悟空,然后来一个这个age冒号来一个18,然后来一什么呢?来一个这个真的冒号来一个男,然后呢,我来一个啊的dress,冒号来一个这个花果山,我是不是创建了这么一个对象啊,这么一个对象,你看我这对象有什么特点呀,这里边是不是有。
11:00
四个属性啊,哎四个属性,那我一想我能不能把这个对象作为参数给他传进去啊,行不行,现在传肯定不行,为什么呀,现在我这参数的不对吧?诶参数还是name is,那我们说了,那我的对象能不能作为实参呀,能不能昨天我们说了实参,哎我们说了实参什么呢?哎,可以是任意的什么呀?哎任意的这个数据类型,它也可以是一个对象啊,也可以是一个对象,那我们说了,当我们的这个参数什么呢?诶参数过多时啊,参数太多了,我们可以什么呢?我们可以将这个参数干嘛呢?封装到什么呀?一个这个对象中,什么叫封装啊,就给它装到一块啊,封装到一个对象中,封装到一个对象中,然后呢,然后我们通过这个什么呀对象。
12:00
传递啊,对象传递,所以注意了,你看我怎么改这回呢,Name我就不这么写了,我里边直接改一什么呢?改一个这个OB接或者直接我就写1O啊直接写O,那我这写什么呢?我就说不是不写name了,叫什么呢?o.name这也不是age了,叫做于什么呀o.age这也不是沾的了,我这来一什么呀?诶是不是O点在哪啊,这也不是address了,我们就来一个什么呀o.address这能看懂吗?哎,我直接来一个对象作为参数,我们先不管它输出,我直接来看这我直接来一个什么呢?来一个这个cancel点儿log一个哦。等于我加上一个哦,我是不是输出O是谁啊来这回我再掉一个,掉一个什么呢?掉一个C哈,那这回我传给谁呢?欧比记,那现在我问你这O是谁,O是不是就是欧比接呀,哎,我一保存O是不是等于一个object呀?诶那现在我问你了,我这些什么o.name o.o点这个什么呀。
13:06
沾点o.address谁呀,是不是就相当于OB节点name OB节点AOB节点点点OB节点address呀,哎,然后我这一保存,咱们来看走,你是不是我是孙悟空,今年18岁了,我是一个男人,我住在花火山,是不是就都出来了,哎,那这块还有没有担心那个顺序问题了,你说我这address我写前边了行不行?已保存是不是还是没问题呀,只要你属性名对了,是不是就OK了呀,而且我们这个代码这个调用的时候看起来是不是就简单多了呀,刚才这个调用我们还干嘛呀,传了一大串啊一大串,而这个呢,只传一个参数就可以了啊,所以注意我们的这个参数它也可以是一个什么呀,也可以是一个对象,当你的参数过多的时候,你就可以考虑一下,是不是应该把这个参数封装到一个对象里,这样我们传起来是不是更加的方便一些呢?啊,更加方便一些,这块看明白了吗?哎,那接下来啊,我们再来说一个对象,我们这说完了再来说我们说了参数,我们的食参可以是一个对象,那我问你了,那我的食参它可不可以是一个。
14:20
函数呢?可不可以是一个函数呢?哎,那我们说了函数是什么呀,函数是不是也是对象啊,所以既然是对象,那就干嘛呀也能是函数,所以注意我们的这个也可以是一个什么呀,也可以是一个函数,我们来看什么意思,这里边我直接来一个,哎,直接来一什么呢?来一个方式,我们叫做一个fun f2,诶刚才上面没有f fun吧,哎,就叫f fun吧,F fun创建这么一个函数,这函数里边呢,我就定一个形参叫做一个A,然后呢,在这我就直接cancel.log一个这个A等于一个加上一个A保存这是不是我们这个一个函数啊好,我这来一个fun,来一个123,那我们说了这A是多少?A是不是就123呀,我给你保存123吧,好,那看着我这来什么呢?Fun,我这一函数叫做c hello c hello,我不写了,我直接来什么呢?不写123了,直接来一个f fun里边传一个c hello。
15:23
这能看懂吗?哎,我是不是把这个C哈,这个函数作为什么呀?哎,作为实材是传给我们这fu了,那现在我问你A等于谁?诶A是不是应该等于那个c hello这函数啊,哎,我这一保存咱们来看A看见了吗?A等于一个function function名叫c hello,换句话说,现在A和我这个say hello它是什么呀?是不是一样的呀?哎,一样的,甚至呢,我还可以在这里边去干嘛呀,去调用怎么调用,直接来一个A,然后括号我这边再传一个什么呀,OB接这个我调用A就和调用c hello是什么呀。
16:02
是一样的啊,我这一保存走你是不是出来了,哎,你注意我掉c hello了吗。没掉吧,哎,我掉的是A,但为什么也会掉三下漏,因为什么呀?因为他俩指向的是。同一个对象啊,同一个对象,我是把C哈这个函数的对象赋值给了我们这个行参什么呀,行参诶,所以我调用这个A,就是调用我们这什么呀,C hello啊c hello,但是现在这个东西你先去干嘛呀,理解一下啊,理解一下,因为这个东西稍微的会有一点点的什么呀,难度啊,有点难度啊,这是我们说的函数也可以作为一个参数啊,现在A就相当于是我们这个C哈,那你经常还要看到怎么写呢,你可能还看到这么写,我直接来什么呢?来个f fun,这里边我直接来什么呢?方式。看我怎么写的,我里边是不是直接传了一个匿名的一个。函数啊,那现在我问你A是谁。A是不是就是我这个匿名的函数啊,哎,我这一保存看见了吗?A是不是就等于方式啊,哎,你现在里边可以写点代码,我来一个alert来一个什么呢?来一个哈,然后我这清空一下,一保存,A是不是就是这个函数了,哎,所以注意啊,注意什么,我们说了函数也可以作为参数这种形式,我们在开发里边的经常会用到,将一个匿名函数作为实参传递给一个什么呀,函数啊,将一个函数作为这个时参啊,好,这块呢,先初步的去理解一下啊,以后我们还要去慢慢的去细说这个东西啊,你只要建立好这个概念,函数也是一个什么呀,也是一个对象,对象能干的事函数。
17:43
都能干啊,对象能干的事,函数都能干好,那咱们再看一个问题啊,上边我这还有一个函数叫做一个,咱们直接来看什么呀,面积诶有这么一个面积这个函数,我直接来一个,那你说我这来什么呢?来一个这个fun里边传一个这个面积,我是把这个函数作为参数传给它了,现在我们来看我这个A是什么呀,是不是就面积的函数啊,哎,面积这函数,但是你注意了我这面积的函数呢,我注意你知道我写的时候我加没加括号。
18:17
没加分,如果我在这再加一个括号,这变成什么了,变成什么了?诶那换句话说,我要问的是什么呢?我要问的是这两个东西的一个区别,它和它的一个区别,这两个什么区别,这是什么?这是我们这个调用函数,这个呢?哎,是我们这个函数对象啊,这个是调用函数,哎,这个是我们这个函数对象,换一句话说,我把这个面积的函数对象传进来以后是干嘛的,是不是把这个对象复制给我们这个A,但是我这样传呢?这样传呢?哎,如果我写一个一啊,我写一个,我写10吧,你就看懂了干嘛了。
19:04
你说A是几,我一你保存A是不是314啊,哎,314,那这个在干嘛呀?哎,调用函数,那这个相当于什么?是不是相当于把函数的返回值作为参数传过去了,哎,所以这块注意啊,我们如果加了括号是在调用函数相当于什么呢?哎,相当于使用的是我们这个函数的这个返回值,所以你来一个面积加上圆框,说白了返回值是啥,它就相当于啥,这能理解吧,它是一个返回值,而我们这个什么呢?面积,这是一个函数对象,相当于什么呢?相当于干嘛呢?诶直接是使用什么呀,使用我们这个函数对象,而不是返回值,这个是返回值,这个是什么呀?对象这块呢,需要去什么呀?需要去绕一下啊,需要去绕一下,简单举个例子啊,简单举个例子。我们说了函数它。
20:04
也是一个什么呀,也是一个对象,但是函数是一个什么呀?是一个具有功能的对象,那现在我们来说呢,功能也就是什么呀,我们说了普通对象可能像一个容器,像一个塑料袋,它只能去装东西吧,而我们函数呢,它是一个有功能的对象,它可能像一个什么呢?像一个机器一样,那我们这函数像一个什么样?假举个例子,像一个这个做冰激凌的这个机器,做冰激凌的机器首先说它也是一个对象,它也可以去装东西,可以去实现普通对象的功能,但是它除了具有普通对象的功能以外,还有什么功能啊,它是不是可以去拉这个冰激凌啊,诶,他可以拉这个冰激凌,所以注意冰激凌机是一个多功能对象,它除了是一个对象,它还可以去生产去拉这个冰激凌,所以注意那这一块,我如果直接写一个它,那相当于什么呀。我是不是把这个机器给别人了,诶我把机器给你了,所以这块注意,如果不加括号是直接什么呀,把机器给别人了,而加了括号呢?诶我是不是在调用这个冰激凌机,我在使用这个冰激凌机啊,相当于什么呢?把这个冰激凌机拉出来的那个冰激凌是不是给你了呀,换句话说就是我们这个什么呀,返回值啊返回值,所以注意你是想传这个函数对象本身还是想传它这个什么呀,返回值如果不加括号,就是传的对象加了括号传的就是什么呀,返回值啊,一定要注意好它们的这个区别啊,它这个区别好,那这一块我们说了一下这个参数啊,可以是一定记住13,可以是任意的数据类型,可以是对象,也可以是函数,什么玩意儿都行啊,什么玩意儿都行好,那这块呢,我们先停一下。
我来说两句