1.函数的定义
函数: 就是可被重复调用执行的代码块
function 函数名(参数1, 参数2, ... , 参数3) {
// 需要执行的代码块
}
1、function是一个关键字, 和var、typeof一样, 都是关键字, 后面要加空格;
2、函数名的命名规范和变量命名一样, 只能是字母、数字、下划线、美元符号, 不能以数字开头, 一般采用驼峰式命名大;
3、函数名后的()中放置函数形参, 形参可以为任意多个(意味着可以没有形参), 如有有多个形参用","隔开;
4、函数{}中就是需要执行的代码块。
1.1 函数的调用
函数名(实参1, 实参2, ... , 实参3);
1、函数名应和被调用的函数名保持一致;
2、实参和形参可以个数可以不用一一对应;
1.2 函数的运用
计算两个数的和
function add(a, b) {
// return返回函数的返回值并结束函数运行
return a + b;
}
var sum = add(10, 20);
console.log(sum); // 输出:30
在JavaScript中,我们可以在函数内部中声明函数。
2. 函数表达式
2.1 匿名函数
使用function关键字声明一个函数,但未给函数命名,所以叫匿名函数
function (a, b) {
console.log(a + b);
}
2.2 函数表达式
使用function关键字声明一个函数,但未给函数命名,最后将匿名函数赋予一个变量,叫函数表达式。
函数也是一种数据类型, 属于Object对象类型中的一种
var fun = function(a, b) { // 匿名函数
console.log(a + b);
};
fun(12, 13);
3.变量的作用域
变量按照作用域划分有局部变量和全局变量。
3.1 局部变量
在JavaScript函数内部声明的变量(使用var声明的)是局部变量,所以只能在函数内部访问它(该变量的作用域是局部的)。
您可以在不同的函数中使用名称相同的局部变量,因为只有声明过该变量的函数才能识别出该变量。
注意:只要函数运行完毕,局部变量就会被销毁回收。
3.2全局变量
在函数外声明的变量是全局变量,网页上的所有脚本和函数都能访问它。
在函数内部没使用var来声明的变量也属于全部变量。
注意: 在函数内部使用某一个变量, 会优先查看函数内部中是有这个变量, 如果函数内部有这个变量, 那么使用的这个变量就是函数内部声明的变量; 反之函数内部没有这个变量, 那么使用的变量就有可能是函数外部的变量(最后如果在全局变量中也没有,那么直接提示错误))。
3.3变量的生存期
JavaScript 变量的生命期从它们被声明的时间开始。
局部变量会在函数运行完毕后被销毁。
全局变量会在页面关闭后被销毁。
3.4扩展
在JavaScript中没有块级作用域, 只有函数作用域。
在C, Java等语言中是有块级作用域的, 块级作用域内的变量为局部变量, 块级作用域意外不能够访问, 而在JavaScript中局部变量只可能存在于函数中。
if (true) {
var b = 20;
}
// 在别的一些语言中, 输出b的时候报错, 因为b在块级作用域声明的, 属于局部变量
console.log(b); // 输出: 20