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

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

发布人:shili8 发布时间:2025-01-03 00:03 阅读次数:0

**前端学习——JS进阶 (Day3)**### 前言在前面的两天里,我们已经掌握了 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. 函数参数函数可以接受多个参数。例如:
javascriptfunction greet(name, age) {
 console.log(`Hello, ${name}! You are ${age} years old.`);
}

在这个例子中,我们定义了一个名为 `greet` 的函数,它接受两个参数 `name` 和 `age`。

####4. 函数返回值函数可以返回任何类型的值,包括数字、字符串、对象等。例如:
javascriptfunction getSum(a, b) {
 return a + b;
}

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

### 二、闭包####1.什么是闭包?

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

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

####2.闭包的作用闭包可以用于实现一些高级功能,例如:

* **记忆**:闭包可以记住其外部作用域中的变量。
* **私有变量**:闭包可以使用私有变量来避免污染全局作用域。

####3.闭包的例子
javascriptfunction createCounter() {
 let count =0;
 return function increment() {
 count++;
 console.log(count);
 };
}

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

在这个例子中,我们定义了一个名为 `createCounter` 的函数,它返回一个名为 `increment` 的函数。每次调用 `increment` 函数时,计数器都会增加。

### 三、作用域链####1. 作用域链的概念作用域链是 JavaScript 中的一个重要概念,它决定了变量的访问权限和生命周期。

####2. 作用域链的类型作用域链可以分为以下几种:

* **全局作用域**: 全局作用域是最外层的作用域,所有变量都在此作用域中定义。
* **函数作用域**: 函数作用域是每个函数内部的作用域,函数内定义的变量都在此作用域中生命周期。
* **块作用域**: 块作用域是使用 `let` 或 `const` 关键字定义的变量所在的作用域。

####3. 作用域链的例子
javascriptfunction outer() {
 let x =10;
 function inner() {
 console.log(x);
 }
 return inner;
}

const inner = outer();
inner(); // 输出:10

在这个例子中,我们定义了一个名为 `outer` 的函数,它返回一个名为 `inner` 的函数。由于 `x` 变量位于 `outer` 函数内部的作用域链中,因此可以在 `inner` 函数中访问它。

### 总结今天我们学习了 JavaScript 中的一些高级特性,包括函数、闭包和作用域链等。这些知识对于理解 JavaScript 的复杂性和灵活性至关重要。

其他信息

其他资源

Top