函数是封装了一段可重复执行的代码块,目的:是让大量代码重复使用。
比如:求数值10到50之间的累加和。
let sum = 0;
for (let i = 10; i <= 50; i++) {
sum += i;
}
console.log(sum);
这段代码可以封装成函数,其中 getSum() 即为函数,可以重复调用:
函数是实现某个功能,或做某件事;
函数的使用: 1,先声明;2,再调用;
函数就像榨汁机,完成某个功能,放入苹果(参数),进行榨汁(处理),出苹果汁(返回结果);
function getSum(num1, num2) {
let sum = 0;
for (let i = num1; i <= num2; i++) {
sum += i;
}
return sum;
}
let sum = getSum(1,3); // 6
let sum = getSum(1, 100); // 5050
console.log(sum);
实例01: 求两数最大值
function getMax(num1, num2) {
let max = (num1 > num2) ? num1 : num2; // 三目运算
return max;
}
console.log(getMax(3, 6)); // 6
实例02:求数组中数值的最大值
let arr = [5, 6, 9, 2, 1, 7, 3];
function getMax(arr) {
let max = arr[0];
for (let i = 1; i < arr.length; i++) {
if (arr[i] > max) {
max = arr[i];
}
}
return max;
}
max = getMax(arr);
console.log(max); //9
实例03:返回任意两数,加减乘除的值(返回数组,多个结果)
function getRe(n1, n2) {
return [n1 + n2, n1 - n2, n1 * n2, n1 / n2];
}
let re = getRe(2, 4);
console.log(re); // [6, -2, 8, 0.5]
console.log(re[0]); // 6
实例04:判断输入的值是不是质数;
function isPrime(number) {
if (number <= 1 || number % 1 != 0) {
return false;
}
let n = 2;
while (n < number) {
if (number % n == 0) {
return false;
} else {
n++;
continue;
}
}
return true;
}
let res = isPrime(156979);
console.log(res); // true
实例05:函数的arguments对象,伪数组,有length属性,可按索引取值,可遍历;
function fn() {
console.log(arguments); // 输出arguments对象;
console.log(arguments.length); // 有length属性;
console.log(arguments[2]); // 可按索引取值;
for (let i = 0; i < arguments.length; i++) {
console.log(arguments[i]); // 可遍历输出
}
}
fn(1, 2, 3, 4, 5);
// 求输入函数参数中的最大值
function getMax() {
let max = arguments[0];
for (let i = 0; i < arguments.length; i++) {
if (arguments[i] > max) {
max = arguments[i];
}
}
return max;
}
console.log(getMax(1, 2, 5));
console.log(getMax(122, 221, 15));
实例06:函数翻转数组
function reverseArr(arr) {
let newArr = [];
for (let i = arr.length - 1; i >= 0; i--) {
newArr[newArr.length] = arr[i];
}
return newArr;
}
arr = [1, 2, 3, 4, 5]
console.log(arr); // [1, 2, 3, 4, 5]
console.log(reverseArr(arr)); // [5, 4, 3, 2, 1]
函数小结:
- 01,函数可带参数,可不带;
- 02,声明函数时,括号里带形参,形参默认值是undefined;
- 03,调用函数时,括号里带实参;
- 04,多个参数间用逗号分隔;
- 05,形参个数和实参个数不匹配,结果不可预计;
- 06,开发中,常用变量接收结果;
- 07,return 后面的代码不会执行,即 return 能终止函数;
- 08,return 只能返回一个值,如果有多个值,返回最后一个;
- 09,要返回多个值,可以 return 一个数组,把值放在数组中;
- 10,函数都有返回值,有return,则返回return后的值;没有return,返回undefined;
- 11, arguments 是当前函数的内置对象,存储所有传递进来的实参,只有函数有这个对象;