什么是函数
- 函数也是一个对象
- 函数中可以封装一些功能(代码) 在需要时可以执行这些功能(代码)
- 函数中可以保存一些代码在需要的时候调用
- 封装到函数中的代码不会立即执行 函数中的代码会在函数调用时执行
函数的声明
函数的声明有两种
函数声明式:
function 函数名([形参1, 形参2...形参N]){
语句...
}
函数表达式
var 函数名 = function ([形参1, 形参2...形参N]){
语句...
}
还有一种比较特殊的匿名函数,就是没有名字的函数
function() {
}
var fun3 = function(){
console.log('这是第三个函数!');
}
函数的参数
形参
可以在函数的()中来指定一个或多个形参(形式参数)
多个形参之间使用,隔开,声明形参就相当于在函数内部声明了对应的变量
实参
在调用函数时,可以在()中指定实参(实际参数)
实参将会赋值给对应的形参
调用函数时解析器不会检查实参的类型
所以要注意,是否有可能会接受到非法参数,如果有可能则需要对参数进行类型的检查
函数的实参可以是任意的数据类型
调用函数时解析器也不会检查实参的数量
多余实参不会被赋值(放在一个类数组里,会影响性能)
如果实参的数量少于形参数量,则没有对应实参的形参将是undefined
函数的执行
调用函数 语法: 函数对象();
当调用函数时 函数中封装的代码会按照顺序执行
函数的返回值
可以使用 return 来设置函数的返回值
语法:return 值
return后的值将会作为函数的执行结果返回,可以定义一个变量接收该结果
如果return语句后面不跟任何值就相当于返回一个undefined
如果函数中不写return 则也会返回undefined
return后面可以返回任意类型的值
在return后的语句都不执行了
alert函数是没有返回值的 undefined
函数的应用举例
// 定义一个函数,可以根据半径计算一个圆的面积,并返回
function cicle(r) {
return r * 3.14 * r;
}
var result3 = cicle(4);
console.log(result3);
// 创建一个函数,可以在控制台输出一个人的信息
function sayHeelo1(name, age, gender, address) {
console.log("我是" + name + ",今年" + age + "岁,我是一个" + gender + "人,家住" +address);
}
sayHeelo1("ben", 18, "男", "旧金山" );
// 当我们的参数很多时,传入参数就有可能因为搞不清楚而出问题
// 这时就可以将参数封装到一个对象中,然后通过对象传参
function sayHeelo(o) {
console.log("我是" + o.name + ",今年" + o.age + "岁,我是一个" + o.gender + "人,家住" +o.address);
}
var obj = {
name:"ben",
age:18,
gender:"男",
address:"旧金山"
}
sayHeelo(obj);