JavaScript—函数
定义:就是封装了一段可以被重复执行调用的代码块
目的:减少大量的重复代码
函数使用分为两步:声明函数和调用函数
1、声明函数
function 函数名(){
函数体
}
2、调用函数
函数名();
注意:
声明函数本身并不会执行代码,只有调用函数才会执行函数体代码
函数的封装是把一个或者多个功能通过函数的方式封装起来,对外只提供一个简单的函数接口
1、利用函数计算1-100的累加和
let sum = 0;
function getSum(start,end) {
for (let i = start;i<=end;i++){
sum += i;
}
}
getSum(1,100);
console.log(sum);
结果:5050
小结:
函数可以带参数也可以不带参数
形参:在函数声明的小括号里面的是形参(形式上的参数),当前并不知道是什么
实参:在函数调用的小括号里面的是实参(实际上的参数),实参是传递给形参的
如果实参的个数多于形参的个数,会取到形参的个数,不影响结果
如果实参的个数小于形参的个数,多余的形参定义为undefined,最终的结果就是NaN
2、函数的返回值
function getMax(num1,num2) {
if (num1>num2){
return num1;
}else if (num2<num1){
return num2;
}else {
return "这两个数一样大";
}
}
console.log(getMax(22,222));
结果:222
注意:
return语句之后的代码不被执行
return只能返回一个值,返回最后一个值
return可以返回数组
函数有return则返回return后面的值
函数没有return则返回undefined
例:
return num1,num2; 只返回num2
3、break、continue、return的区别
break:结束当前的循环体(如for、while)
continue:跳出本次循环,继续执行下次循环(如for、while)
return:不仅可以退出循环,还能够返回return语句中的值,同时还可以结束当前的函数体内的代码
4、arguments的使用
在JavaScript中,arguments实际上它是当前函数的一个内置对象。所有函数都内置了一个arguments对象,arguments对象中存储了传递的所有实参。
arguments展示形式是一个伪数组,因此可以进行遍历。伪数组具有以下特点
1)具有length属性
2)按索引方式存储数据
3)不具有数据的push、pop等方法
function f() {
console.log(arguments);
console.log(arguments.length);
console.log(arguments[1]);
for (let i = 0 ;i < arguments.length;i++){
console.log(arguments[i]);
}
}
f(1,2,3)
结果:
Arguments(3) [1, 2, 3, callee: ƒ, Symbol(Symbol.iterator): ƒ]
3
2
1
2
3
5、翻转数组
function reverse(arr){
let newArr = [];
for (let i = arr.length-1;i >= 0;i--){
newArr[newArr.length] = arr[i];
}
return newArr;
}
let arr1 = reverse([1,2,3,4,5,6,7,8,9,10,11,12,13]);
console.log(arr1);
结果:(13) [13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
6、冒泡排序
function sort(arr){
for (let i = 0; i<arr.length-1; i++){
for (let j = 0 ; j < arr.length-i-1 ;j++){
if (arr[j] < arr[j+1]){
let temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
return arr;
}
let arr = [1,2,3,4,5,6,7,8,9];
console.log(sort(arr));
结果:(9) [9, 8, 7, 6, 5, 4, 3, 2, 1]
7、判断是否为闰年
function isRunYear(year) {
let flag = false;
if (year % 4 == 0 && year % 100 != 0 || year % 400 ==0 ){
flag = true;
}
return flag;
}
console.log(isRunYear(2000));
结果:true
8、函数的声明方式
1、利用函数关键字自定义函数(命名函数)
function fn(){
}
2、函数表达式(匿名函数)
let 变量名 = function(){}
let fun = function(){
console.log('我是函数表达式');
}
fun();
(1)fun是变量名不是函数名
(2)函数表达式声明方式和声明变量差不多,只不过变量里面存的是值,而函数表达式里面存的是函数