00:00
好,我们就来上课,那么这节课呢,我开始来学习我们的函数啊,那首先我们先来看一下我们为什么要学函数了,比如说啊,我们在这里面,在我们没学函数,没学循环之前,我们想写一个表格,怎么写啊。是不是咱们得写H填门的了,对吧?比如说这里边我们来写一个表格,那是不是就得写成table对吧?然后这里边比如说给他一个这个borderer,我把其他的标签都省略了啊,包等于一,咱们的宽度比如等于一个800,好了,那我们要写个十乘十的表格,是不是T2乘以十对吧?它里边有什么TD,每一个TD是不是也一样,里面乘以十。是这样的,哎,那你现在你看是不是一个TR里边,这是不是十行十列的表格呀,对吧,当然这里面所有东西我都没有内容的啊,那没有内容怎么办,我是不是可以在里面直接。就是给一行内容。一。一一。一。111111,好,这是什么?一行十列对吧?这只有一行内容,剩下的,哎,不行,每一个我都给他加一个吧,来给个一让他撑开啊,直接给他一个一。
01:10
给他一个一。然后这个也给他一个一。再给个一。再给个一。再给个一。再来个一。好像没没有了是吧,这还少一个,来给个一好了,那这就是咱们的十二十六的表格对吧,那现在我们来刷新看一下啊,在这里面。02TABLE是不是十二十列表格搞定了对吧?那咱们来看一下,我写个十二十列表格用了多少行,是不是用了100多行代码。对不对?那接下来我们讲了什么?讲了循环,那么我们通过循环去做表格是不是就方便了很多,那for for一个table对吧?就在这里边我们放循环那一样,我们先需要O什么O一个table包等于一个一,然后alli a。等于一个。C。
02:01
然后呢,这个WT宽度也一样,比如我给他设置一个800好了,然后在这里面有个table,开始也有什么,也有table的结束T对吧,然后这里边十行十列的表格,那一行里边是不是有十个单元格啊,那也就是说在T2 T2这里边我们要循环什么,循环十个单元格,那放一个这个TD等于。到TD等于零对吧,到TD小于小于十。然后到了TD再加好了,加加完之后呢,在这里边我们来艾怎么样艾我们的TD。结束了TD,然后在这块我们再分割连接到了TD这个变量,对吧,是不是就零到一行,现在是一行是不是就零到。九啊,对吧,来。就零到九,那么时行时列,是不是把它再循环十次就行了,对不对,那也就是说在这里边我们再来放循环,Dollar tr等于零,Dollar tr小于十,然后到T2再加,那这时候也是什么,也是十个,然后这里边往里面缩进一下。
03:03
好,那现在我们再来看。走,你是不是十行十列的表格就有了,哎,那现在有个问题,什么问题呢?就是当你做出一个十行十的表格,比如说你的产品经理或你老板说不行啊,我需要三行五列的表格怎么办?那这个时候是不是我需要把它再复制一份,对吧?至至少我要复制一下对吧?复制完以后呢,在这里面做一个什么,做一个相应的更改吧,那比如说这里边也要什么要三行五列的是不是三,然后这块呢,五这块改成成改成什么,改成5万,那再来刷新,我这里面是不是有三行五列了,对吧?人家说那不行,我还需要什么,我还需要一个五行八列的,那怎么办?那这块我们是不是还得再复制一个出来,那这块改成什么,改成五行。八列对吧?那再来刷新五行八列的是不是有了,哎,有说不行,不够不满足需求,我现在又要改了,又要改需求了,对吧?我们再去写东西改需求是很正常,你说吧,那如果改需求,比如说人叫什么,还要五行八列,但您需要隔行换色怎么办?那这个时候是不是还需要一个五行八列,是不是我需要把它再复制一下,然后需要隔行换色,那这里面我是不是得加代码对吧?也就说如果。
04:06
这这里边直接这个到BG color吧,等于什么,等于这个Dollar tr曲模二等于等于零的时候,对吧,我就给它变成一个,比如说我给它变成一个什么,变成一个这个呃,井号CDC对吧,然后否则呢,我给它变成井号666啊。所这个叫F1F1F1吧,啊好吧,那这块我是不是要给它拼接一下,那就是BG color就要等于分割啊,这块线还不对。连接这么多。然后这个到了。好,理解好了,这个时候我们再来看。揍你。就说如果这外什么都少个问号问号。那最后再来。处理你看是不是这就有了对吧?啊,您说那比如说我还要增加,我再要个两行三列的,那你是不是还得再复制。
05:01
对不对,那这样的话,你代码用的是不就很难了,对不对,而且在这个页面中是不是都是重复的代码,对吧,那你再来看,那如果我们会了函数以后,函数又是什么样的,那在这里边看好了零四,比如说叫什么呢?叫做FUNC杠可不函数的表格啊,同样这里边我们定义一个FNC叫做DEMO,我给他起个叫my table吧,诶我自己叫做的表格对吧,然后同样在这里边我把这个十号实例的代码CTRLC。拿过来CTRL位好了,完事了,完事以后,现在我们来刷新一下这个页面,看看有什么效果啊,在这里面。零四。有输出吗?没有看到了吧,哎,所以函数啊,它就像什么呢?就相当于一个小狗一样,对吧,一个函数它就是指定指定一个公function function声明的对吧?Function什么function就是功能,所以一个孩子就是一个功能而已啊,那么我定义好了这个功能,这个功能就像小狗一样,很听话啊,我不调呢,不执行,所以我需要干嘛,需要调用函数。
06:07
调用。函数,那怎么调用呢?就是通过它的名字,我是不是起个名字叫叫不叫DEMO,不叫DEMO叫什么叫my table是吧?哎,My table,然后括号来调用,当我这时候调用的时候来,你看刷新我的十行十列表格是不是就出现了,对吧?哎,那有人说那现在我不需要十行十列了,我需要一个五行八列了,那怎么办?我再来my table,那不好意思,这个时候是不是还是一个十行十列的,看我是不是调用一次,他执行一次对不对,但是呢,这个时候咱说了,您调用主想要一个五行八列的,那我这么调用是不是肯定不行啊,哎,那是不是我就得给这个小狗,让小狗继续学习,给它封装东西啊。那封装你看好了,比如这里面我给它加一些东西啊,加一个肉,加一个扣啊,比如它默认为是。好。默认也为十。我给了两个数对吧,而这块儿呢,我不再用数据了,而是用两个变量,一个是肉,一个是Dollar Co Co,好了啊,现在咱们来看啊,如果在这块,比如说我两个都不给的情况下啊,我先不给这个十啊,这个时候我们来刷新。
07:10
刷新没有任何效果对吧?好了,我们调用一次,当我调用次数,他会给我干嘛呢?给我报错,看到了吗?告诉什么样,告诉我content error什么意思啊,参数的数量的错误。看到了吗?哎,告诉我arguments to function说这里边什么缺少参数吧,哎,也就是说人家这里边注意这里边给的叫做什么形参,形状参数,因为这个参数没有默认值,所以我们在传出就要传,比如说十行十列好了,那现在你来看走你是不是啊,这里边都有了,对吧?啊,人家说要三行五列,那怎么办?我my cable,然后给三行五列,那你现在看三行五列的是不是又有了?对吧,你说要五行八列,那好啊,我继续调用my table告诉这个小狗对吧,你去给我做一个五行八列的,那这个时候你再看五行八列的报错,因为我没给结尾。是不是就有了,哎,那比如说他想要隔行换色的,那怎么办?我是不是一样给他加一个什么,加一个功能就可以了,对吧,比如说在这里边啊,我想隔行换色,你想隔几行换色呢?我给你一个标志,比如到了FLL。
08:11
诶,我给你个标准,比如说默认啊,我们就隔两行对吧,然后换什么颜色呢?比如说我换成一个yellow。YELOW。到了这个COLOR1,到了COLOR2了吧,哎,比如说COLOR1默认为什么默认一个井号,井号这个F1F1F1啊,然后看了二呢,我再给他一个默认的叫什么井号F2。不是叫F2,叫井号这个666。是默认有两个值啊对吧?哎,那你想隔宽射好啊,那这里面你看好了,我直接BG color等于什么呀,等于分割连接到Co lo。啊哎,给这么一个变量,那这个变量有吗?没有对吧?那Dollar Co Co就等于什么呢?等于Dollar tr取模,取模谁呀,是不是就取模到了f lag,当它等于等于零的时候,就是我隔起还换色嘛,对吧?哎,那我就是让它变成什么,变成刀了CO1,否则我就到了Co lo2是不是颜色给设置了对吧?那现在你看啊,我现在刷新。
09:14
不会有任何报错。哎,都给我干嘛,都给我设置了这个颜色了是吧?哎,都设置了颜色,那这块呢,我应该怎么再来一个,呃标记。标记颜色。最后再来一个吧,比如说来一个Dollar true Dollar is Fla啊。等于false。等于false,好了,我又加一个,只要往上加功能啊,加功能就可以了,对吧?所它默认等于for,那在这里边我就来判断的啊,怎么判断呢?我说如果如果什么呀,如果Dollar is flag,如果它为true的话,就代表是隔二换色,那隔二换色我就输出这个内容,否则也就默认为for for是不不需要隔二换色,那我就直接输出一个TR就完事儿,那现在我们来看啊,这个时候来刷新是不是还原默认了对吧?因说了这个时候干嘛我需我需要个五行八列对吧,或者需再需要个十行十列,那是不是就my table对吧,再调上个十行十列,然后需要干嘛,需要折行换色,我是不是设为处,设置为处以后这个时候你看是不是隔行换色就有了,哎,默认是什么?默认是隔一行的对吧,也说曲目二为零的,那比如说现在我让他中间间隔两行,那这块直接给设置个三逗号设置个三,那就它基数是三了,对吧,那再来刷新你看。
10:29
取模三等于零。取模三等于T2,什么三等于T2从零开始,零,一二。它不等于零的时候,不等于零的时候都是这个颜色。那我应该写反了是吧。哎,我们应该写法的,我们应该写什么呢?应该写的是这两个颜色写法的啊,来给它二。一好让浅色的那个在连续对吧,深色的可能在两边嘛,好了,这是不是相当于间隔两行了对吧?那比如说这里面我说我不要两行,我想多一些,那多一些行不行也可以啊,比如这里面继续。
11:05
这个my c my cable调用对吧,我说要用多少呢,我还是要呢,比如我要到20行十列对吧,然后还是设置为出,让它进行隔行换色,但是隔几行,隔四行一定换颜色,那这个时候你来看。走,你看我下面的是不是格式上变换颜色了,当然这个颜色我看的很难受,对吧,所以这里面我可以给啊,比如说中间的我依然是白色,叫白色对吧,然后后面的那个呢,就是开始和结尾的呢,就是每次间隔的这个变化颜色呢,我变得变成什么,变成绿的红色,那这个时候你来看走你。那你看。是不是第一行红,然后三个白,然后第四行就开始红了,看到了吧?哎,那这样的话,你看我的代码是不是就经简很多,而且这个函数是不是只需要我写一次就可以了,剩下的这是干嘛,是不是都在调用啊?哎,我需要做什么,我是不是将就对这个函数进行的要求,或者说告诉他我要什么样的。对不对,他是不是就帮我完成了,哎,这就是咱们的函数啊,所以学了函数以后,是不是可以大大的降低我们代码的重复性。
12:03
没错吧,哎,那OK,那我们来看一下函数到底是什么?函数就是你最终成功的一条小狗,看到了吗?而且来说了,函数就是一个功能,你好比之前我们学的什么islo is empty con,对吧,MT这些都是函数,包括瓦它也是函数。啊,只是在之前我们没有是什么没有接触过函数,对吧,所以我们都管它叫什么呢?叫功能,而且我还跟大家说了一件事,什么事儿,就是学习功能,要学习三点,哪三点呢叫做功能的定义,功能的作用,功能的参数,以及功能的对不对,返回值吧,哎,那换句话来,换句话来说,是不是就是相当于比如说这些是不是都是系统提供的对不对,哎,也就是说学习这些系统函数。需要学习哪样三点,哪三点呢叫做函数的作用,函数的参数以及函数的返回值是不是这样的?哎,那OK啊,这就是咱们所说的函数啊,好了,那我们就来看一下,那么学习函数我们都要学习哪些东西?
13:03
就这么多对吧?那么首先我们要学习函数的定义,然后函数如何去自定义函数,那自定义函数我这里块给它标了个星级,五角星什么意思,就是很重要对吧?五个五角星啊,那函数定义我们了解就可以了啊,然后return语句的作用也一样,五个五个五角星,还有函数的参数也是五个五角星,还有还什么函数的变量作用域,也就是函数变量的范围啊,给了三星,然后引用传参也一样五星,然后还有什么静态函数啊,变量函数啊,回调函数啊,递归函数啊,内部函数啊,必包函数啊,以及什么文件的包含啊,这就是我们在学习函数的时候,我们需要学习的这些内容。啊,这些内容,那么标星的就是什么,就是重点,大家一定要去给我记住了,一定要会了,而标三星的作为什么,作为掌握就可以,作为一星的了解就可以。啊,那好,那咱们再来看我们学习函数学习这么多,那么我们最终呢,根据函数的分类又会分为两类,哪两类呢?一类就根据是否是系统自带的,会分为什么系统函数和自定义函数,什么叫系统函数,像我们之前用的什么安塞A字,在这这么多系统自带的对吧?这就叫做系统函数,而自定义的呢,就是咱们的自定义函数,就是比如说我们现在没有这个功能对吧?比如说页面这个函PP里边没给我提供这个做表格的功能,我是不是自己去定义了这么一个功能,那OK,这就是咱们的自定义函数啊,这是咱们的自定啊,所以咱们函数会分为这么两类,另外呢,我们还会分什么呢?根据它是否有返回值,会分为什么带返回值的函数和执行过程的函数。
14:28
啊,那么只要是这个函数有返回值,就是带返回值的,如果这个函数没有返回值,就是执行过程,你比如说这两个啊,这两个安赛它有返回值吗?没有,它只帮你删除变量对不对,那么好,它就是一个执行过程函数啊,而a side呢,它带不带返回值代码,它会返回什么?它是A赛是检测变量是否设置值对吧?如果设置了返回一个处,如果没设置返回一个false,对吧?它是不是具有返回值了?哎,所以它会干嘛呢?它就叫做带有返回值的函数。那么另外咱们还可跟干嘛呢?根据函数结构的不同,又会分为什么,一般函数啊,变量函数啊,回调函数啊,内部函数啊,递归啊,递包啊啊,其实他们。
15:07
没有那么多麻,没有那么多麻烦啊,他们就是一个称呼,只是相当于什么,相当于人,那你看人会因为他的结构不同,会分为什么,分为男人女人以及什么改装车。是不是这样的,哎,所以函数也一样,它外表的都是一样的,都长这个样,只是因为里边的一些结构不同,会分为什么,会分为什么变量函数,回调函数,内部函数递归递保啊,所以大家再学习起来不要去那么恐惧啊,也没必要那么恐惧,只是他的名字多了一些而已,对吧?就好比你说上厕所,那你说上厕所别人能理解对吧?你说初中别人也能理解,你说你要答辩别人也能理解,没错吧?哎,就是好比是这些语句化的名称一样啊,所以大家不用去紧张,不要说看到这么多函数是不是很难学,很难理解啊,不会的啊,所以不用去紧张,好了,那我们知道了函数的分类以后,接下来我们就来看我们自定义函数的语法啊,首先我们就看它就行,以它为例,在这个函数的定义的时候。
16:00
我们函数的格式啊,也一样,我们按照最新的格式来写,那在这个函数下面,我们给他一个括号,也就是这个括号我们写到下边来啊,那咱们来看函数是不是以function,也就是函数姓什么姓function对吧?哎,以function开始,后面跟的这个东西什么是我们的函数名啊,是咱们的函数啊,而且这个function不能去什么,不能省略,后面跟房主名,再往后跟一个什么,是不是跟了一个小括号对吧,也就相当于在这里边。函数的基本结构是不是这么写的,FUNC方式,然后后面跟上函数的名称对吧?然后小括号划括号对吧?这个花括号里面的内容就什么,就是我们的函数题,函数题啊,也就是说当调用函数时候,你要执行哪些内容,那所有执行的内容都放到哪了?都放到这个花括号中间了啊,这就是咱们函数的基本结构,那么函数性就性方不能省略,那么函数的名呢?明。我们这里边需要也一样需要去注意可以使用什么,可以使用英文,不可以使用中文啊,而且呢,可以使用数字,但数字一样不能开头,你看我一开头是不是就变变错了,哎,那数字放到中间是没问题,可不可以使用特殊字符,可以使用特殊,可以使用特殊字符吗?比如说这里边我来个星号行吗?是不是又不行啊,哎,只能使用谁只能使用下划线,下划线啊跟我变量名命名规则差不多啊,而且函数声明也一样要有意义啊,函数名区分大小写吗?比如说在这里边啊,你看刚才我定义的是不是叫my table啊,那好了,我现在来个大写的叫做MY。
17:31
Table。叫做mytb my table对吧,调用它,调用它以后好了,我,哎不行,我再给一个十行实例啊好,现在我们来看可不可以啊,在这个红色的下边,你看会不会增加一个来刷新红色下边是不是多增加一个表格。是不是可以啊,哎,也就是说函数会区分大小写吗?函数不区分大小写。还出名。
18:01
不区分大小写啊,那不区分大小写,那函数名,那比如说我在这里边我已经定义了my cable对吗?我这块还能再定义吗?比如说叫my cable可以吗?哎,这个时候你再来看,我再来刷新它会干嘛给我报错,说什么错误呢?就说不能重复定义my table了,看到了吗?哎,因为什么my tableable已经被定义了,也就是说函数名怎么样,是不是不可以重复定义啊?对不对,那OK,把它注释掉啊,叫做什么函数名。啊,不能不能,什么不能出名。不能出名啊,函数名不能出名啊,好了,那我们回过来,咱们来看在这里边。函数的性就是方程不能省略对吧?函数名的规则这里边一定要背下来啊,不可以使用什么英文,也不可以使用中文,可以使用数字,但是不能以数字开头,不能使用特殊字符,下线除外,然后函数里面不去跟大家写函数性证明要有意义,然后不可以和已经存在的函数重名,这个已经存在了,包含谁?包含我们系统函数和自定义的函数,刚才我是不是就用了自定义函数来演示的对不对,那一样,那系统函数,比如系统函数里面已经有瓦瓦大MP这个函数了,那你还能说我自己在声明一个VR当do MP这个函数吗?不好意思,不允许。
19:10
啊,他一样会给你报错1MP,你看这是我们系统函数对不对,那现在咱说了函数格式啊,把这个括号放到下边来啊,放到下面来,那这个时候你再来看。我刷新是不是也一样报错,哎,不能重复定义往上对吧,在我的第三十五行,在我的第三十五行是不是这里,哎,所以这里边大家记住也不能干嘛不能跟系统函数重名啊,也不可以跟。也不可以跟系统函数重名,OK,这就是咱们函数的定义啊,这个函数的定义好了,那函数定义我们现在知道了。再来看函数的特征,什么特征呢?函数定义好之后,是不是不调用不执行啊对不对,刚才比如说我在这里边啊,我在定义函数FUNC方式叫什么wi。写wi写写什么写A,写A在这里面我来艾一个什么,来给我一行A好了,那现在我这个函数定义好,定义好以后你看在我页面中它有执行吗。
20:05
有执行吗?有输出这个A吗?没有吧,哎,是不是很听话,不调用不执行啊,那现在咱们来看我调用一下W好了,直接调用对吧,通过括号方式进行调用,那么调用的时候,这个时候你看我页面中有没有这行A有没有。有吧,而且大家也发现一个问题,什么问题呢?就是我在什么在声明函,这是声明函数啊,这是不是声明函数对吧?我在声明函数之前来干嘛?来去调用函数吧。调用的函数是不是也一样可以对吧,也就是说什么咱们函数的调用是不分先后的啊,函数的调用是不分先后的,看到了吗?啊,为什么是这样的,因为PP解析器在加载这个页面,加载这个页面之前就已经优先加载了我们的函数部分,但是注意它只是加载,并没有什么,并没有执行,也就是这个东西会被提升,提升到页面最顶部,所以虽然我们在第四行去调用,实际上在42到四十五行的代码已经在我页面最顶部加载完了啊,所以相当于这个东西实际上它永远都是在它上面,永远都是在它上面,只是我现在看的代码是这样,在只要解析析一解析,这些函数都会被提升到上面去。
21:17
啊,都会被提升到上面去,所以我函数调用还不分先后啊,这是咱们函数的特征,那咱们来看一下在这里边啊,咱们说函数特征怎么样,函数的定义,定义之后不调用什么不执行啊,而且函数调用部分先后,因为PP解析器在执行这个页面代码之前,就已经预先加载了函数的内容,对不对,哎,这就是咱们声明函数以及函数的这一些基本的我们要掌握的,要了解的。啊,好了,那这里边重点从这开始,对吧?我们一定要去知道函数的声明格式,还有什么函数的命名规则,以及函数的特征啊,函数的特征,那我们为什么要用函数,那用函数是不是可以大大的降低我们的代码量啊,对不对,来降低我们重复的代码量,而且函数在这里面就是我们的一个功能,对吧?只要我需要这个功能,我就可以干嘛可以去定义我们函数啊好了,这就是咱们这节课我们来认识一下函数,以及掌握我们函数的定义啊好,那这节课我们到这里,下节课我们来看我们语句的作用。
我来说两句