【问题标题】:How are some Javascript features implemented differently between nodejs and the browser?nodejs 和浏览器之间的一些 Javascript 功能如何实现不同?
【发布时间】:2023-04-05 17:27:01
【问题描述】:

根据v8 wikipedia link

V8 既可在浏览器中使用,也可作为独立设备使用 可以集成到独立的高性能引擎 项目。 V8用于以下软件:

  • Google Chrome 和所有其他基于 Chromium 的网络浏览器,包括 Brave、Opera 和 Vivaldi ...

  • Node.js 运行环境

记住——nodejs 也使用libuvhandle asynchronous events

Node.js 使用 libuv 来处理异步事件。 Libuv 是一个 网络和文件系统功能的抽象层 Windows 和基于 POSIX 的系统,例如 Linux、macOS、NonStop 上的 OSS, 和 Unix。

由于浏览器和 nodejs 共享不属于web api 或节点拥有api 的公共部分。

我假设某些功能可以通过 libuv 完成 - 与浏览器的实现方式不同。

两者之间有哪些不同的 API/JS 实现示例?

【问题讨论】:

  • 你说的不同是什么意思?
  • 提升 libuv 功能的代码与无法做到这一点的浏览器实现相比。
  • 不确定我是否正确理解您的问题,但 Timers API 的实现方式不同。因为ref/unref 在浏览器上下文中毫无意义。试试typeof setTimeout(() => {})
  • 很好的例子!你还有更多吗?
  • Bert Belder 的演讲:youtube.com/watch?v=5soA6MCRODg 解释了 NodeJS 中的事件循环是如何产生的。希望这能让你朝着正确的方向前进。

标签: javascript node.js google-chrome v8 libuv


【解决方案1】:

引用here

Libuv 是为 Node.js 提供事件循环的库

所以基本上this answer 应该会给你一个我想的想法。

【讨论】:

    猜你喜欢
    • 2015-10-23
    • 1970-01-01
    • 1970-01-01
    • 2010-10-07
    • 1970-01-01
    • 2020-06-26
    • 1970-01-01
    • 1970-01-01
    • 2017-12-15
    相关资源
    最近更新 更多