JavaScript 面试备忘录 - 第 2 部分

2025-01-09 12:00:26   小编

JavaScript 面试备忘录 - 第 2 部分

在 JavaScript 面试中,深入理解异步编程是至关重要的。异步操作允许代码在等待某些任务(如网络请求或文件读取)完成时继续执行其他任务,从而提高应用程序的响应性和性能。

回调函数是 JavaScript 中处理异步的基本方式之一。它作为参数传递给一个异步函数,在异步操作完成时被调用。例如,在读取文件时:

const fs = require('fs');
fs.readFile('example.txt', 'utf8', (err, data) => {
    if (err) throw err;
    console.log(data);
});

然而,回调地狱(Callback Hell)是使用回调函数时常见的问题,当有多个嵌套的回调时,代码会变得难以阅读和维护。

Promise 是解决异步问题的一种更优雅的方式。它代表一个异步操作的最终完成或失败,并返回其结果。一个 Promise 有三种状态:pending(进行中)、fulfilled(已成功)和 rejected(已失败)。

const promise = new Promise((resolve, reject) => {
    setTimeout(() => {
        resolve('成功结果');
    }, 1000);
});
promise.then(value => {
    console.log(value);
}).catch(error => {
    console.error(error);
});

使用 Promise 可以避免回调地狱,使代码更加清晰。

async/await 是基于 Promise 的异步编程的语法糖,它让异步代码看起来更像同步代码。async 函数总是返回一个 Promise。在 async 函数内部,可以使用 await 关键字暂停函数的执行,直到 Promise 被解决。

async function asyncFunction() {
    try {
        const result = await new Promise((resolve) => setTimeout(() => resolve('异步结果'), 1000));
        console.log(result);
    } catch (error) {
        console.error(error);
    }
}
asyncFunction();

在内存管理方面,理解闭包和垃圾回收机制很关键。闭包是指有权访问另一个函数作用域中变量的函数。它可以让这些变量的值始终保持在内存中。

function outerFunction() {
    let outerVariable = 10;
    function innerFunction() {
        console.log(outerVariable);
    }
    return innerFunction;
}
const closure = outerFunction();
closure(); 

垃圾回收是 JavaScript 自动回收不再使用的内存的机制。了解这一机制,有助于编写高效的代码,避免内存泄漏。掌握这些知识点,能在 JavaScript 面试中展现出扎实的技术功底和对异步编程及内存管理的深刻理解。

TAGS: JavaScript 备忘录 JavaScript面试 第2部分

欢迎使用万千站长工具!

Welcome to www.zzTool.com