函数的定义
定义
函数:函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块。
- 函数也是一个对象(万物皆是对象)
- 普通对象 容器
- 函数对象 函数中可以封装一些功能(代码),在需要时可以执行这些功能(代码)
- 可以保存一些代码,在需要的时候调用
- 使用typeof检查一个函数对象时,会返回Function
函数的创建
- 可以将封装好的代码以字符串的形式传递给构造函数
- 封装到函数中的代码不会立即执行
- 函数中的代码会在函数调用的时候执行
- 调用函数 语法: 函数对象
- 函数对象具有所有普通对象的功能
使用函数对象创建
(一般不使用这种方法)
var fun = new Function("console.log('函数');");
fun(); // 调用
console.log(fun);
使用函数声明创建
语法:
function 函数名([形参1,形参2…]){
语句…
}
function fun2(){
console.log("函数2");
}
fun2();
使用函数表达式创建
语法:
var 函数名 = function([形参1,形参2…]){
语句…
}
var fun3 = function(){
console.log("函数3");
//匿名函数
}
fun3();
函数的使用(1)
使用:定义一个用来两个数求和的函数
可以在函数的()中指定一个或者多个形参,形式参数。
多个形参之间使用,隔开,声明形参就相对于在函数内部声明了两个变量
// 函数的定义
function sum(a,b){
console.log(a+b);
}
// 函数的调用
sum(1.2);
// 调用函数时解析器不会检查实参的类型
sum(true,false);
// 多余的形参不会被赋值
sum(123,456,"hello",true,null);
一 :
- 在调用函数时,可以在()中指定实参(实际参数)
- 实参可能是容易数据类型
- 实参会赋值给函数中对应的形参
二: - 调用函数时解析器不会检查实参的类型
- 所有要注意,是否有可能接收到非法的形参,如果有可能,则需要对内参数进行类型的检查
- 调用函数时,解析器也不会检查实参的数量
- 多余的形参不会被赋值
- 如果实参的数量少于形参的数量,则没有对应的实参的形参将是undefined
函数的使用(2)
有时,我们会希望函数将值返回调用它的地方。
通过使用 return 语句就可以实现。
在使用 return 语句时,函数会停止执行,并返回指定的值。
创建一个函数,用来计算三个数的和:
可以使用return 来返回函数的返回值
语法:
return 值
- return 后的值将会作为函数的执行结果返回
- 可以定义一个变量来接收该结果
- 在函数中 return后的语句都不会执行
- 任何return语句后 不跟任何值,相对于返回了一个undecided
- 如果函数中不写return 则也会返回undecided
- return 后可以跟任何数据类型
function sum(a,b,c){
var d = a+b+c;
return d;
}
// 调用函数
// 定义一个变量,接收到返回值
var result = sum(1,5,3);
console.log(result);
变量
局部变量
在 JavaScript 函数内部声明的变量(使用 var)是局部变量,所以只能在函数内部访问它。(该变量的作用域是局部的)。
您可以在不同的函数中使用名称相同的局部变量,因为只有声明过该变量的函数才能识别出该变量。
只要函数运行完毕,本地变量就会被删除。
全局变量
在函数外声明的变量是全局变量,网页上的所有脚本和函数都能访问它。
变量的生存周期
JavaScript 变量的生命期从它们被声明的时间开始。
局部变量会在函数运行以后被删除。
全局变量会在页面关闭后被删除。