JavaScript开发者应懂的33个概念

2023-10-23
6分钟阅读时长

调用栈

当你调用一个函数时,浏览器会创建一个称为 “执行上下文(execution context)” 的环境来存储在此函数内部定义和使用的所有局部变量。这些上下文会被放入一个叫做 “调用栈(call stack)” 的数据结构中。 了解更多

原始类型

基本类型(基本数值、基本数据类型)是一种既非对象也无方法或属性的数据。有 7 种原始数据类型:string、number、bigint、boolean、undefined、symbol、null。多数情况下,基本类型直接代表了最底层的语言实现。 了解更多

值类型和引用类型

值类型和引用类型是两种不同的数据类型分类。值类型(Primitive Types)是指存储简单数据值的变量,它们被直接存储在栈内存中。引用类型(Reference Types)是指存储对象的引用的变量,而不是实际的对象本身。引用类型的值存储在堆内存中,并且存储在变量中的值是该对象的地址。了解更多

隐式, 显式, 名义和鸭子类型

隐式类型转换是指在 JavaScript 中自动将一个数据类型转换为另一个数据类型;显式类型转换是通过特定的语法进行强制类型转换;名义类型是根据声明时指定的类型来确定变量或对象的类型;鸭子类型是基于对象是否具有特定方法或属性来判断其类型。了解更多

== 与 ===, typeof 与 instanceof

“==” 和 “===” 是用于比较两个值的运算符,而 “typeof” 和 “instanceof” 是用于确定值的类型的运算符。了解更多

this, call, apply 和 bind

关键字 this 用于引用当前执行上下文中的对象。可以使用 call、apply 或 bind 函数修改 this 的指向。了解更多

函数作用域, 块级作用域和词法作用域

函数作用域、块级作用域和词法作用域是关于变量可见性和访问权限的概念。了解更多

闭包

闭包(closure)是一种特殊的函数,它可以访问其自身作用域以外的变量。换句话说,闭包是由函数以及在函数创建时可访问的词法环境组成的组合体。了解更多

高阶函数

高阶函数(HOF: Higher-Order Function)是指能够接受其他函数作为参数或者返回一个函数的函数。这种特性使得 JavaScript 具有函数式编程的能力,能够更灵活地处理数据和逻辑。了解更多

表达式和语句

表达式是由变量、运算符和值组成的代码片段,它可以计算出一个值。简单来说,表达式就是一个可以被求值的东西。语句是一条完整的执行指令,它用于执行特定的操作或控制程序的流程。了解更多

变量提升

在 JavaScript 中,变量提升是指在代码执行之前,JavaScript 引擎会将变量和函数的声明提升到当前作用域的顶部。这意味着你可以在声明之前使用这些变量和函数。了解更多

Promise

Promise 是一种用于处理异步操作的对象。它代表了一个尚未完成但最终会完成的操作,并可以通过链式调用来处理操作的结果。了解更多

立即执行函数, 模块化, 命名空间

JavaScript 中的立即执行函数、模块化和命名空间,都是在组织和管理代码方面非常有用的概念。了解更多

递归

递归(recursion)是一种函数调用自身的技术。它是一种强大的编程概念,常用于解决需要重复执行相同或类似任务的问题。通过递归,可以将一个复杂的问题分解为更小的、可重复解决的子问题。了解更多

算法

算法(algorithm)是解决问题的步骤和规则的描述。它们是为了执行特定任务而设计的计算过程。JavaScript 提供了许多内置的算法和数据结构,同时也支持开发者自定义和实现各种算法。了解更多

数据结构

数据结构是计算机科学中研究数据组织、存储和管理的一门学科。它主要关注如何将数据以特定的方式组织起来,以便于对其进行操作和处理。常见的数据结构包括数组、链表、栈、队列、树、图等。这些数据结构都有各自的优缺点和适用场景。了解更多

消息队列和事件循环

在 JavaScript 中,消息队列和事件循环是实现异步编程的重要机制。当代码执行时,JavaScript 引擎将同步任务添加到调用栈中执行,而异步任务则会被推到消息队列中等待执行。了解更多

setTimeout, setInterval 和 requestAnimationFrame

当涉及到 JavaScript 中的时间控制和动画效果时,setTimeout、setInterval 和 requestAnimationFrame 是常用的方法。了解更多

继承, 多态和代码复用

在 JavaScript 中,继承、多态和代码复用是面向对象编程的重要概念。了解更多

按位操作符、TypedArray 和 ArrayBuffer

按位操作符用于对数字的二进制表示进行操作;TypedArray 是一种特殊的数组对象,它允许直接处理二进制数据而无需经过类型转换。 了解更多

DOM 树和渲染过程

DOM(Document Object Model)是浏览器将 HTML、XML 解析后形成的树形结构,表示文档中元素、属性以及它们之间的关系。浏览器会将 DOM 树和 CSSOM 树合并为渲染树(Render Tree)并生成最终的网页布局和样式。了解更多

new 与构造函数, instanceof 与实例

new 关键字用于创建对象的实例,构造函数是一个用于创建和初始化对象的特殊函数,instanceof 运算符用于检查一个对象是否是某个类的实例。了解更多

原型继承与原型链

原型链是 JavaScript 中主要的继承方式。了解更多

Object.create 和 Object.assign

Object.create 和 Object.assign 是 JavaScript 中用于对象创建和属性复制的两个重要的方法。了解更多

工厂函数和类

在 JavaScript 中,工厂函数和类都是用于创建对象的模板。了解更多

设计模式

设计模式指的是在软件设计过程中,通过经验和实践总结出来的一系列通用的问题解决方法。设计模式可以帮助开发者更高效地组织代码、提高代码质量和可维护性。了解更多

Memoization

Memoization(记忆化)是一种优化技术,旨在通过缓存函数的计算结果来提高函数的执行速度。该技术可以用于任何需要重复计算的函数,特别是那些具有较高时间复杂度的函数。了解更多

纯函数, 函数副作用和状态变化

纯函数是指没有副作用的函数,且在相同的输入下,总是返回相同的输出。了解更多

耗性能操作和时间复杂度

算法是一系列明确定义的步骤,用于解决特定问题或执行特定任务的计算过程。时间复杂度和空间复杂度是用于评估算法效率的两个重要指标。了解更多

JavaScript 引擎

JS 引擎是一种解释执行 JavaScript 代码的程序。其主要作用是解释和执行 JavaScript 代码,并将其转换为可以被计算机理解和执行的指令。了解更多

二进制, 十进制, 十六进制, 科学记数法

二进制、十六进制和十进制都是数字的表达方式,而科学记数法则是方便对极大或者极小数字表达的一种方式。了解更多

偏函数, 柯里化, Compose 和 Pipe

偏函数, 柯里化, Compose 和 Pipe 是开发过程中函数的一些使用技巧。了解更多

代码整洁之道

整洁的代码让人赏心悦目,便于阅读和理解,我们应该尽量在编写代码的过程中保持整洁的习惯。这里是一些常见的让代码更整洁小技巧。了解更多