函数的概念
函数是在学习JS阶段的第一个复杂数据类型,它的作用函数的作用就是把一段可重复使用的代码放在一个 盒子"里面,以便随时取用
对于代码的书写而言——就是我们在内存中开辟一个小空间, 把我们的代码放进去,并进行命名,以后我如果需要用到这段具有功能性的代码时,就可以直接通过代码的名字进行调用。
函数的特点
- 封装代码——使代码更简洁
- 重复使用——在重复使用功能的时候可直接调用
- 执行时机——随时可以执行
函数的创建
声明式函数
语法: function 名字() {}
function: 是一个声明函数的关键字**(必写)**
名字: 根据该函数所具有的功能自行命名即可
(): 存放参数的位置**(必写)**
{}: 存放函数所表现功能的代码
赋值式函数
语法: var 名字 = function () {}
注意:
在声明函数的时候, 函数内部的代码时不会执行的,
只有调用这个函数的时候, 里面的代码才会执行
函数执行
直接调用
直接写 -> 函数名()
函数名: 你要让哪一个空间里面的代码执行
(): 括号内如果有参数,写入参数进行调用,如果没有直接写括号即可调用
依赖行为调用
这种方法需要给一个元素绑定一个行为(这个在之后会讲解)
在 js 里面获取一个页面元素有一个简单的办法, 就是直接使用 id 名称,一个元素的 id 名称可以直接被当作一个 js 的变量来使用,这里利用这id 名就可以表示这个元素。
例:
添加一个点击行为onclick(表示在点击之后生成的效果)
元素.onclick -> 表示当点击这个元素的时候
<script>
//id名为box
box.onclick = 函数名
</script>
注意:
声明式函数,可以在声明前调用,也可以在声明后调用
赋值式函数,只能在声明后调用
函数的参数
1.形参
形参:写在函数定义时的 ( ) 里面,可以写多个,用逗号隔开,只能在函数内部使用
2.实参
实参:写在函数调用时的 ( ) 里面,可以写多个,用逗号隔开,是一个准确的数据,用来给对应的形参赋值
3.参数的个数关系
1)形参与实参个数一样多时
按照从左到右的形式,一一对应,给对应的形参赋值
2)形参比实参多
没有实参赋值的形参,系统自动用undefined补齐
3)实参比形参多
多出来的没办法直接使用,在函数内部没有形参接收,在函数内部不能直接使用
函数内部的一个特殊的变量:arguments
arguments表示实参的集合,是每一个函数内部天生的变量,不需要自己进行定义,可在函数内部直接拿来使用
在arguments中会把所有的实参按照从左到右的顺序依次排好,给每一个实参一个编号(索引 / 下标),编号(索引 / 下标) 是从 0 开始的, 依次递增,当你需要获取到这里面的某一个时,只要写 arguments[编号] 就能得到某一个准确的值
arguments 有一个属性叫做 length(表示 arguments 这个集合的长度, 也就是里面有多少个数据),我们通常使用这个属性来对整个arguments 进行遍历。
例:
<script>
//定义函数
function fn() {
// 打印arguments进行查看
console.log(arguments)
// 循环的结束位我们应该根据 arguments 的 length 来决定
//因为开始值为0,所以遍历所有的只需要进行到length-1即可
for (var i = 0; i < arguments.length; i++) {
// console.log(i) // i 得到的就分别时 0 1 2 3 4
// 当 i === 0 的时候, 使用 arguments[0]
// 当 i === 1 的时候, 使用 arguments[1]
// 当 i === 2 的时候, 使用 arguments[2]
console.log(arguments[i])
}
}
// 给函数传入实参
fn('hello', 'world', true, 100, 500, false, '你好')
</script>