Skip to content

binghuis/dive-into-javascript

Repository files navigation

深入了解 JS

pdm-managed jupyterlab deno

目录

V8 是如何工作的

文章涉及到的 JS 相关概念依据的是 ES6 规范

  1. 简述 V8 引擎对 JS 代码的处理流程

  2. ES6 规范中的词法环境与闭包、作用域的关系

  3. 创建阶段:执行上下文与提升

  4. 执行阶段:深入 Window 事件循环机制(Window EventLoop)

JS 概念深入

  • 探究 requestAnimationFrame 和 requestIdleCallback 的执行机制。
  • 了解 Worker EventLoop 和 Worklet Eventloop。
  • 了解 async/await 实现机制。

Jupyter Notebook 启动

  1. 安装 deno

    如果执行 deno upgrade 的时候报 error: You do not have write permission to /opt/homebrew/bin/deno这里

  2. 安装 deno jupyter

    deno jupyter --unstable --install

    关于 Deno 对 Jupyter 的支持 Deno 1.37: Modern JavaScript in Jupyter Notebooks

  3. 校验安装是否成功 deno jupyter --unstable

  4. 包管理工具 pdm 安装。

  5. 依赖安装

    pdm install

  6. jupyter 启动

    pdm dev

V8 Debug

安装 V8 调试工具 d8

  1. 使用 jsvu 安装 v8-debug。

  2. 配置 ~/.bashrc~/.bash_profile 文件,增加下面两行。

# --- 配置 D8 ---
export PATH="${HOME}/.jsvu/bin:${PATH}"
alias d8='v8-debug'
# --- end ---
  1. 执行 d8 -v 测试安装结果。

  2. 使用 d8 生成阶段产物。

  • 抽象语法树: d8 --print-ast demo.js > ast.txt
  • 字节码: d8 --print-bytecode demo.js > bytecode.txt
  • 作用域: d8 --print-scopes demo.js > scopes.txt

About

深入了解 JS(V8 引擎 JS 运行机制)。

Resources

Stars

Watchers

Forks