当前位置:实例文章 » HTML/CSS实例» [文章]前端学习——JS进阶 (Day2)

前端学习——JS进阶 (Day2)

发布人:shili8 发布时间:2024-12-08 10:07 阅读次数:0

**前端学习——JS进阶 (Day2)**### 前言在前面的文章中,我们已经掌握了 JavaScript 的基本语法和常用方法。今天,我们将继续深入探讨 JavaScript 的进阶内容,包括函数、闭包、作用域链等。

### 一、函数####1. 函数定义JavaScript 中的函数是使用 `function` 关键字定义的。例如:

javascriptfunction add(a, b) {
 return a + b;
}

在这个例子中,我们定义了一个名为 `add` 的函数,它接受两个参数 `a` 和 `b`,并返回它们的和。

####2. 函数调用要使用函数,我们需要将其作为一个表达式来调用。例如:
javascriptconsole.log(add(3,4)); // 输出:7

在这个例子中,我们调用了 `add` 函数,并传递了两个参数 `3` 和 `4`,然后将结果输出到控制台。

####3. 匿名函数JavaScript 中的匿名函数是没有名称的函数。例如:
javascriptvar add = function(a, b) {
 return a + b;
};

在这个例子中,我们定义了一个匿名函数,并将其赋值给变量 `add`。

####4. 函数参数JavaScript 中的函数可以接受多个参数。例如:
javascriptfunction add(a, b, c) {
 return a + b + c;
}

在这个例子中,我们定义了一个名为 `add` 的函数,它接受三个参数 `a`、`b` 和 `c`,并返回它们的和。

####5. 函数返回值JavaScript 中的函数可以返回任意类型的值。例如:
javascriptfunction getPerson() {
 return { name: 'John', age:30 };
}

在这个例子中,我们定义了一个名为 `getPerson` 的函数,它返回一个对象。

### 二、闭包####1.什么是闭包闭包是一种特殊的函数,它可以访问其外部作用域中的变量。例如:
javascriptfunction outer() {
 var x =10;
 return function inner() {
 console.log(x);
 };
}

var innerFunc = outer();
innerFunc(); // 输出:10

在这个例子中,我们定义了一个名为 `outer` 的函数,它返回一个匿名函数 `inner`。当我们调用 `innerFunc()` 时,`inner` 函数可以访问其外部作用域中的变量 `x`。

####2.闭包的应用闭包有很多应用场景。例如:
javascriptfunction createCounter() {
 var count =0;
 return function increment() {
 count++;
 console.log(count);
 };
}

var counter1 = createCounter();
counter1(); // 输出:1counter1(); // 输出:2var counter2 = createCounter();
counter2(); // 输出:1

在这个例子中,我们定义了一个名为 `createCounter` 的函数,它返回一个匿名函数 `increment`。当我们调用 `counter1()` 和 `counter2()` 时,它们分别访问其外部作用域中的变量 `count`。

### 三、作用域链####1. 作用域链的定义作用域链是 JavaScript 中的一个重要概念,它决定了一个函数或表达式可以访问哪些变量。例如:
javascriptfunction outer() {
 var x =10;
 function inner() {
 console.log(x);
 }
 return inner;
}

var innerFunc = outer();
innerFunc(); // 输出:10

在这个例子中,我们定义了一个名为 `outer` 的函数,它返回一个匿名函数 `inner`。当我们调用 `innerFunc()` 时,`inner` 函数可以访问其外部作用域中的变量 `x`。

####2. 作用域链的应用作用域链有很多应用场景。例如:
javascriptfunction outer() {
 var x =10;
 function inner1() {
 console.log(x);
 }
 function inner2() {
 var y =20;
 console.log(y);
 }
 return [inner1, inner2];
}

var [innerFunc1, innerFunc2] = outer();
innerFunc1(); // 输出:10innerFunc2(); // 输出:20

在这个例子中,我们定义了一个名为 `outer` 的函数,它返回一个数组 `[inner1, inner2]`。当我们调用 `innerFunc1()` 和 `innerFunc2()` 时,它们分别访问其外部作用域中的变量 `x` 和 `y`。

### 总结在本文中,我们学习了 JavaScript 中的函数、闭包和作用域链等重要概念。这些知识可以帮助你更好地理解 JavaScript 的工作原理,并且可以应用于实际开发中。

其他信息

其他资源

Top