函数也是一个对象
函数中可以封装一些功能(代码),在需要时可以执行这些功能(代码)
函数中可以保存一些代码在需要的时候调用
//创建一个函数对象
//可以将要封装的代码以字符串的形式传递给构造函数
//在实际开发中很少使用构造函数来创建一个函数对象
var fun = new Function(console.log("hello,这是我的第一个函数"))
console.log(typeof fun) //function
封装到函数中的代码不会立即执行;
函数中的代码会在函数调用的时候执行
调用函数
语法: 函数对象()
fun();
当调用函数时,函数中封装的代码会按照顺序执行
使用函数声明来创建一个函数
//语法:
function 函数名([形参1,形参2,...形参N]){
语句...
}
function fun2(){
console.log("hello,这是我的第一个函数")
}
fun2();
使用 函数表达式来创建一个函数
创建匿名函数赋值给函数名,建议后面加上分号 var a=1;
var 函数名=function([形参1,形参2,...形参N]){
语句...
};
var fun3 = function (){
console.log("hello,我是匿名函数中封装的函数")
};
fun3();
函数的参数
定义一个用来求两个数和的参数
可以在函数()中来指定一个或多个形参(形式参数)
多个形参之间的使用,隔开,声明形参就相当于在函数内部声明了对应的变量,但是并不赋值
在调用函数时,可以在()中指定实参(实际参数)
实参将会赋值给函数中对应的形参
function sum(a,b){
console.log(a+b)
}
sum(1,2) //3
调用函数时解析器不会检查实参的类型,所以要注意是否有可能会接收到非法的参数,如有可能则需要对参数进行类型的检查
函数的实参可以是任意的数据类型
sum(123,"hello") //123hello
sum(true,false) //1
调用函数时解析器也不会检查实参的数量,多余的实参不会被赋值
如果实参的数量少于形参的数量,则没有对应实参的形参将是undefined
sum(123,1,"hello",true,null) //124
sum(123) //NaN (123+undefined)
函数的返回值
//创建一个函数,用来计算三个数的和
function sum(a,b,c){
var d=a+b+c;
return d;
}
var result= sum(1,2,3);
console.log("result="+result) //6
使用return 来设置函数的返回值
语法: return 值
return后的值将会作为函数的执行结果返回,可以定义一个变量来接收该结果;
在函数中return后的语句都不会执行;
如果return语句后不跟任何值就相当于返回一个undefined,如果函数中不写return,则也会返回undefined;
return后可以跟任意类型的值