1.函数的概念
在JS里面,可能会定义非常多的相同代码或者功能相似的代码,这些代码可能需要大量重复使用。
虽然for循环语句也能实现一些简单的重复操作,但是比较具有局限性,此时我们就可以使用JS中的函数。
函数:就是封装了一段可被重复调用执行的代码块。通过此代码块可以实现大量代码的重复使用。
2.函数的使用
函数在使用时分为两步:声明函数和调用函数。
2.1声明函数(方法一)
//声明函数
function 函数名() {
/ /函数体代码}
●function 声明函数的关键字,必须小写
●由于函数一般是为了实现某个功能才定义的,所以通常我们将函数名命名为动词,比如getSum
方法二 函数表达式(匿名函数)
var 变量名 = function() {
}
var fun = function(aru) {
console . log( '我是函数表达式' );
console .10g(aru);
}
fun('pink老师');
// (1) fun是变量名不是函数名
// (2) 函数表达式声明方式跟声明变量差不多,只不过变量里面存的是值而函数表达式里面存的是函数
// (3) 函数表达式也可以进行传递参数
2.2调用函数
//调用函数
函数名(); // 通过调用函数名来执行函数体代码
●调用的时候千万不要忘记添加小括号
●口诀:函数不调用,自己不执行。
注意:声明函数本身并不会执行代码,只有调用函数时才会执行函数体代码。
3.函数的参数
3.1形参和实参
在声明函数时,可以在函数名称后面的小括号中添加一些参数,这些参数被称为形参,而在调用该函数时,同样也需要传递相应的参数,这些参数被称为实参。
参数 | 说明 |
形参 | 形式上的参数函数定义的时候传递的参数当前并不知道是什么 |
实参 | 实际上的参数函数调用的时候传递的参数实参是传递给形参的 |
参数的作用:在函数内部某些值不能固定,我们可以通过参数在调用函数时传递不同的值进去。
形参与实参个数不一致问题:
1、如果实参个数与形参一致 ,则正常输出结果。
2、如果实参个数多于形参个数 ,会取到形参的个数(多余的实参不管1)
3、如果实参个数少于形参个数 ,多余的形参会被定义为undefind(与数值参与运算结果为NaN)
(形参可以看作不用声明的变量)
function sum (num1, num2) {
console. log (num1 + num2) ;
}
sum(100,200) ;//形参和实参个数相等,输出正确结果
sum(100,400,500,700); // 实参个数多于形参,只取到形参的个数
sum(200) ;//实参个数少于形参,多的形参定义为undefined ,结果为NaN
注意:在JavaScript中, 形参的默认值是undefined。
3.4小结
●函数可以带参数也可以不带参数
●声明函数的时候 ,函数名括号里面的是形参,形参的默认值为undefined
●调用函数的时候,函数名括号里面的是实参
●多个参数中间用逗号分隔
●形参的个数可以和实参个数不匹配,但是结果不可预计,我们尽量要匹配
// (1)我们函数只是实现某种功能,最终的结果需要返回给函数的调用者 函数名(); 通过return实现的
// (2) 只要函数遇到return 就把后面的结果返回给函数的调用者 函数名() = return后面的结果
想用return返回多个值,可以返回数组
4.4函数没有return返回undefined
函数都是有返回值的
1. 如果有return则返回return后面的值
2.如果没有return 则返回undefined
4.5 break ,continue ,return的区别
●break :结束当前的循环体(如for. while )
●continue : 跳出本次循环,继续执行下次循环(如for. while )
● return :不仅可以退出循环 ,还能够返回 return语句中的值,同时还可以结束当前的函数体内的代码
(返回上一级函数)
5. arguments的使用
当我们不确定有多少个参数传递的时候,可以用arguments来获取。在JavaScript中, arguments实际上它是当前函数的一个内置对象。所有函数都内置了一个arguments对象, arguments对象中存储了传递的所有实参。
arguments展示形式是一个伪数组,因此可以进行遍历。伪数组具有以下特点:
●具有length属性
●按索引方式储存数据
●具有数组的push, pop等方法