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