函数也是一个对象。
函数中可以封装一些功能(代码),在需要时可以执行这些功能(代码)。
函数中可以保存一些代码在需要时调用。
使用typeof检查浑身对象时会返回function。
创建一个函数对象
var fun = new Function();
可以将要封装的代码以字符串的形式传递给构造函数
var fun = new Function("console.log('Hello 这是我的第一个函数‘);");
注:
封装到函数中的代码不会立即执行,函数中的代码会在函数调用的时候执行
调用函数
语法:
函数对象()
例:
fun();
注:
当调用函数时,函数中封装的代码会按照顺序执行。
使用函数声明来创建一个函数
语法:
function 函数名([形参1,形参2,······,形参n]){
语句···
}
使用函数表达式来创建一个函数
语法:
var 函数名 = function([形参1,形参2,······,形参n]){
语句···
};
立即执行函数
函数定义完立即被调用
特点:往往只执行一次
例:
(function(){
alert("我是一个匿名函数");
})();
可以在函数的()中来指定一个或多个形参(形式参数)
多个形参之间使用逗号隔开,声明形参就相当于在函数内部声明了对应的变量,但并不赋值。
例:
function sum(a,b) {
console.log(a+b);
}
在调用函数时,可以在()中指定实参(实际参数),实参将会赋值给函数中对应的形参
例:
function sum(a,b) {
console.log(a+b);
}
sum(1,3);
注:
1.调用函数的解析器不会检查实参的类型,要注意是否有可能会接受非法的参数,如果有可能则需要对参数进行类型的检查。
2.调用函数的解析器不会检查实参的数量,多余的形参不会被赋值,如果实参的数量少于形参的数量,则没有对应实参的形参将是undefined。
3.函数的实参可以是任意的数据类型。
4.当参数过多时可以将参数封装到一个对象中,然后通过对象传递。
实参可以是一个对象,也可以时一个函数
可以使用return来设置函数的返回值
语法:
return 值
注:
1.return后的值将会作为执行结果返回,可以定义一个变量接收该结果
例:
function sum(a,b,c) {
var n=a+b+c;
return n;
}
var result = sum(1,2,3);
console.log("result"+result);
2.在函数中return后的语句都不会执行,可以用来结束函数。
3.return后不跟任何值相对于返回一个undefined,如果函数中不写return,则也会返回undefined。
4.return后可以跟任意类型的值。
返回值类型
返回值可以是任意的数据类型,也可以是一个对象,也包括函数。