目录
1.基本用法
一个函数有若干命令,函数将命令进行封装方便复用
我们之前写过一个1-100累加和,现在我们要求78-145,88-932的累加和,如果每次都使用这么一大段代码看上去比较麻烦,所以我们使用函数
封装函数的语法是这样的 function [函数名]([要传入的参数]){[执行语句] return [返回值]}
- 参数不是必须的,如果没有参数括号里不写东西就行了,参数可以写一个或多个
- 如果没有返回值可以不使用return,不设置返回值返回值为undefined,返回值可以是任意类型变量
使用的时候 [函数名](传入的参数值)
- 没有参数的时候括号里面什么都不填就行
2 参数
2.1 形参与实参
形参(形式上的参数)是start_num与end_num这种参数,没有具体的值
实参(实际的参数)是 78,145,88,932这种参数,有具体的值
2.2 参数个数不匹配
2.2.1 实参比形参多一个
不会影响结果,依然是88-932的和
2.2.2 实参比形参少一个
相当于end_num是undefined,不会报错,但也不会达到想要的效果
这里返回0只是因为我定义了一个0,也会有其他的状况
如果什么都不给,那么就是start_num与end_num都是undefined
2.3 arguments
箭头函数中没有arguments
2.3.1 基本使用
当我们不知道用户要输入几个数,且我们还想对这些数进行操作的时候,我们使用arguments
arguments是函数中内置的变量,每个函数都有一个arguments,所以arguments只能在函数里面用。
arguments可以读到所有给到的参数,我们可以通过对其遍历与判断得到我们想要的数据
- arguments是一个伪数组,并不具有数组的全部方法
我们比如现在要1与3
2.3.2 给任意参数求和的例子
在终端中我们给任意个数字参数,都可以得出相加的结果
- 注意argments的最后一个值是callee,所以判断条件不要写 i<=argements.length
2.4 剩余参数
像下面这样写就是用something代替argements,这个变量名something你自定就行
剩余参数的意思是剩下的,不算你之前拿到的,比如想下面这样写,你给的前两个参数就不在something中
2.5 参数的默认值
2.6 普通参数个数 length
如果给了参数默认值,这个length就不包含这个默认参数了
3 return
3.1 中断程序
一旦接触了return,函数就不会继续向下运行
return也可以中止循环
但return必须配合function使用,不能单独使用
3.2 返回单值
return可以写多个值,但是只会返回最后一个值
如果确实要返回多个元素就将它们放到一个数组中
4 函数间的相互调用
我们用get_information()调用print_information()
虽然我们没有独立执行print_information(),但还是运行了
也可以不在return中写
经测试print_information一样是可以被调用的
5 引入外部文件函数
我们现在有一个函数在test.js中(test.js与test.html在相同的路径下),这个函数是一个移动动画函数,第一个参数是 要移动的元素,第二个参数是 要移动多少像素
我们直接这样用
打开页面后发现盒子移动到了500px的地方
如果你的js文件中不涉及元素加载的话,像我们test.js中只有函数,那么你可以在头部进行引用
效果是一样的
6 函数实质上也是一种对象
比如我们可以给函数 挂载一个函数
7 函数的name属性
这样写在 es6 中也有name属性,在es5中想下面这样写是没有name属性的