JavaScript 函数、进程与执行
精通 JavaScript 需要理解代码的运行机制。
以下是你需要掌握的核心概念。
1. JavaScript 的 5 种函数类型
- 具名函数 (Named Function):使用特定的名称。这有助于你快速调试错误。
- 匿名函数 (Anonymous Function):没有名称。通常用于回调或变量赋值。
- 函数表达式 (Function Expression):将函数赋值给一个变量。
- 箭头函数 (Arrow Function):使用
=>符号的简写语法。它对this关键字的处理方式有所不同。 - IIFE:在定义后立即运行。它可以让你的代码保持隔离。
2. 进程 (Process) vs. 线程 (Thread)
进程 (Process) 是一个正在运行的程序。每个进程都有自己独立的内存。如果 Chrome 崩溃了,Spotify 仍会继续运行,因为它们是独立的进程。
线程 (Thread) 是进程内部的一个微小单元。线程共享相同的内存。这使得它们比进程更快、更轻量。
3. 同步 (Synchronous) vs. 异步 (Asynchronous)
JavaScript 是单线程的。它通常一次只运行一个任务。
同步执行 (Synchronous Execution): 任务按严格的顺序运行。下一行代码会等待当前行执行完毕。如果某个任务耗时过长,这可能会降低应用的运行速度。
异步执行 (Asynchronous Execution): 任务可以现在开始,稍后完成。这可以防止你的代码发生阻塞。
工作原理:
- 调用栈 (Call Stack) 处理当前的任务。
- Web APIs 在后台处理耗时任务,例如定时器或数据请求。
- 回调队列 (Callback Queue) 保存已完成的任务。
- 事件循环 (Event Loop) 在调用栈为空时,将任务从队列移回栈中。
异步流程示例:
- 打印 "Hi"
- 启动一个 2 秒的定时器
- 打印 "End"
- (2 秒后)打印 "Vicky"
代码不会等待定时器。它会立即执行到 "End"。
可选学习社区:https://t.me/GyaanSetuAi