(六)函数
1. 概述
函数:就是封装了一段可被重复调用执行的代码块。通过此代码块可以实现大量代码的重复使用。
封装:把一个或者多个功能通过函数的方式封装起来,对外只提供一个简单的函数接口。
2. 函数的声明与调用
1
2
3
4
5
6
|
// 声明
function funcName(params) {
// function statements
}
funcName(params);
// 调用
|
3. 形参与实参
声明时传入的为形参,调用时传入的为实参。
4. 实参个数与形参个数不匹配的情况
参数个数 |
说明 |
形参和实参个数相等 |
输出正确结果 |
实参个数多于形参 |
只取到形参的个数 |
实参个数少于形参 |
多的形参定义为undefined,结果为NaN |
1
2
3
4
5
6
|
function sum(num1, num2) {
console.log(num1 + num2);
}
sum(100, 200); // 300, 形参和实参个数相等,输出正确结果
sum(100, 400, 500, 700); // 500, 实参个数多于形参,只取到形参的个数
sum(200); // NaN, 实参个数少于形参,多的形参定义为undefined,结果为NaN
|
在JavaScript中,形参的默认值是 undefined
。
5. 声明函数的三种方法
5.1 function 命令
1
2
3
|
function funcName(params) {
// function statements
}
|
5.2 函数表达式
1
2
3
|
const funcName = function(params) {
// function statements
}
|
5.3 箭头函数 =>
创建一个函数更加简洁的方式,有两种方式:
- 不带花括号:
(...args) => expression
,计算表达式,直接返回。
- 带花括号:
(...args) => { bodu }
,可以编写多行多个语句,需要 return
语句返回。
1
|
let sum = (a, b) => a + b;
|
5.4 Function 构造函数
1
2
3
4
5
|
const add = new Function(
'x',
'y',
return 'x + y'
);
|
6. 注意
7. arguments 的使用
arguments
是所有JS函数内置的对象,但也只有函数具有。
1
2
3
4
|
function test() {
return arguments;
}
console.log(test(1,2,3,4));
|
输出:
1
|
Arguments(4) [1, 2, 3, 4, callee: ƒ, Symbol(Symbol.iterator): ƒ]
|
函数的 arguments
是一种伪数组:
- 具有数组的
length
属性
- 按照索引方式进行存储
- 没有真正数组的一些方法
pop()
、push()