返回

JS从0开始(二):函数、对象、闭包、原型、作用域、垃圾回收

前端

深入理解 JavaScript 的核心概念

函数:执行具体操作的计算引擎

函数是 JavaScript 中强大的工具,用于执行特定任务。它们通过将输入数据映射到输出数据来工作。函数的基本结构如下:

function function_name(parameters) {
  // 代码
}

函数接收参数(输入),然后根据定义的代码块执行一系列操作。最后,它们返回一个值(输出)。

对象:数据结构中的键值对集合

对象是一种数据结构,用于存储和组织相关数据。它们由键值对组成,其中键是字符串,而值可以是任何数据类型。JavaScript 中的对象定义方式如下:

const object = {
  key1: value1,
  key2: value2,
  // ...
};

对象可用于模拟现实世界中的实体、存储数据或作为函数的参数。

闭包:访问外部作用域变量的函数

闭包是允许函数访问外部函数局部变量的特殊函数。通过将函数嵌套在另一个函数中来创建闭包:

function outer_function() {
  let local_variable = 10;

  function inner_function() {
    console.log(local_variable); // 输出:10
  }

  return inner_function;
}

const inner_function = outer_function();
inner_function();

在这个示例中,内部函数 inner_function 可以访问外部函数 outer_function 的局部变量 local_variable

原型:对象的蓝图

每个 JavaScript 对象都有一个原型对象,它定义了对象的属性和方法。原型对象是对象的父对象。原型可以帮助我们实现继承,并允许对象访问从原型继承的属性和方法。

作用域:变量和函数的访问范围

作用域定义了变量和函数可被访问的范围。JavaScript 中有两种作用域:全局作用域和局部作用域。全局作用域可在脚本的任何地方访问,而局部作用域仅可在函数内部访问。

let global_variable = 10;

function outer_function() {
  let local_variable = 20;

  function inner_function() {
    console.log(global_variable); // 10
    console.log(local_variable); // 20
  }

  inner_function();
}

outer_function();

在这个示例中,global_variable 是全局变量,而 local_variable 是局部变量。内部函数 inner_function 可以访问这两个变量。

垃圾回收:自动释放未使用的内存

JavaScript 中的垃圾回收是一项自动机制,用于释放不再使用的内存空间。当变量不再被引用时,垃圾回收器会自动回收它。这有助于防止内存泄漏,即程序中存在一些不再使用的变量,导致内存使用量不断增加。

结论

这些核心概念是 JavaScript 的基础。通过理解这些概念,您可以编写更健壮、更高效的代码。通过掌握这些基础,您将能够解锁 JavaScript 的全部潜力,并创建令人惊叹的应用程序。

常见问题解答

  1. 什么是函数签名?
    函数签名由函数名及其参数类型组成。它用于在编译时检查函数调用是否有效。

  2. 如何创建继承?
    通过使用 Object.create() 方法或 class 可以创建继承。

  3. 什么是事件循环?
    事件循环是一种机制,用于处理异步事件并执行任务队列。

  4. 什么是闭包陷阱?
    闭包陷阱是指在闭包中捕获对外部变量的引用而导致内存泄漏。

  5. 什么是严格模式?
    严格模式是一种 JavaScript 模式,它有助于防止某些常见错误并强制执行更严格的语法规则。