一、函数
函数(function),函数也是一个对象和其他的对象功能一样,不同的是在函数中,可以直接存储js代码,并且可以在我们需要的时候对这些代码进行反复的调用
/*
创建一个函数,fn为函数名
*/
function fn() {
alert('我是个函数');
alert('我是个函数2');
alert('我是个函数3');
}
/*
调用函数:
函数对象+()
*/
fn();
二、函数的语法和参数
函数声明:
function 函数名([形参1,形参2…]){
代码语句…
}
或者
let 函数名 = function ([形参1,形参2…]){
代码语句…
}
定义一个函数可以用来求任意两个数的和
1、形参(形式参数):
在定义函数时,可以在函数的()中指定输了不等的形参
定义形参就相当于在函数中声明了几个变量,但没有赋值
2、实参(实际参数):
在调用函数时,可以在函数的()中传递输了不等的实参,实参将会赋值给对应的形参
js中不会检查实参的类型和数量,所以我们可以传递任意形式的实参,也可以传递任意数量的实参
如果实参和形参的数量相同,则对应的实参赋值给对应的形参;如果实参少于形参的数量,则没有实参的形参默认为underfined;如果实参多于形参,多于的实参不会使用
三、函数的返回值
返回值:返回值就是函数的执行结果,通过return来设置函数的返回值
语法:return值;
任何值都可以作为函数的返回值,甚至可以是函数;
如果不设置return或者后面不设置值,将返回underfined,return后所有的代码都不会执行,return执行后,函数立即结束
调用函数时,返回值就是函数的执行结果,可以定义一个变量来接收结果
四、函数的补充
function fn(a, b) {
a++;//自增,参数a,为改变量,不会影响其他指向该对象的变量
console.log('a=', a);
// b={name:'猪八戒'}//改变量
b.name = "zbj";//改对象,会影响其他指向该对象的变量
console.log('b=', b);
}
/*
参数可以是任意类型的值
*/
// fn('hello', function () { console.log('hello'); });
let a = 10;//变量a
let b = { name: 'swk' };
fn(a, b);//10,20
console.log("a=", a);
console.log("b=", b);
匿名函数,js禁止一个以function开头的函数没有名字
IIFE,立即执行函数,会在函数创建后立即调用,并且只会调用一次
/*
写法1:(function(){})()
写法2:(function(){}())
*/
(function () {
console.log('我是一个匿名函数');
})();