函数也是一个对象
函数中可以封装一些功能(代码),在需要时可以执行这些功能(代码)
函数中可以保存一些代码在需要的时候调用
使用typeof检查一个函数对象时,会返回function
创建一个函数对象
实际开发中很少用构造函数创建一个函数对象
可以将要封装的代码以字符串的形式传递给构造函数:
var fun=new Function(“console.log(‘hello,这是我的第一个函数’);”);
封装到函数中的代码不会立即执行,会在函数调用的时候执行
语法:函数对象()
当调用函数时,函数中的代码会按照顺序执行
使用函数声明来创建一个函数
语法:
function 函数名([形参1,形参2,形参3…]){
语句…
}
使用函数表达式来创建一个函数
语法:
var 函数名=function([形参1,形参2,形参3…]){
语句…
}
可以使用return来设置函数的返回值
语法:return 值
return后的值将会作为函数的执行结果返回,可以定义一个变量,来接收该结果。
在函数中,return后的语句都不会执行。
如果return后不跟任何值就相当于返回一个undefined。
如果函数中不写return,也会返回undefined。
return后可以跟任意类型的值。
例:
// 定义一个函数,判断一个数字是否是偶数,如果是返回true,否则返回false
function isOu(n){
return n%2==0;
}
console.log(isOu(5))
// 定义一个函数,可以根据半径计算一个圆的面积,并返回计算结果
function mianji(r){
return 3.14*r*r
}
console.log(mianji(5))
// 创建一个函数,可以在控制台中输出一个人的信息,可以输入人的name,age,gender,address
//实参可以是任意数据类型
function xinxi(shei){
return console.log("他叫"+shei.name+",今年"+shei.age+"岁了,是个"+shei.gender+"人,住在"+shei.address);
}
var a={
name:"张三",
age:20,
address:"北京",
gender:"男"
}
xinxi(a)
立即执行函数
函数定义完立即被调用,这种函数就叫做立即执行函数。立即执行函数往往只会执行一次。
例:
(function(a,b){
console.log(a);
console.log(b);
})(1,2);