Js函数冰山一角

132 阅读3分钟

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