V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
shanex
V2EX  ›  JavaScript

JavaScript 底层是怎么实现的,有相关书籍推荐吗?

  •  
  •   shanex · 2020-11-13 19:51:02 +08:00 · 2739 次点击
    这是一个创建于 1482 天前的主题,其中的信息可能已经有所发展或是发生改变。
    经常看到类似的面试题:给你一段代码让你给出执行结果。最烂大街的就是事件循环,Promise,微任务宏任务这类。不同时间看到过很多版本的题解。都持怀疑态度。因为很多给的结论都仅仅是结论,几个案例,几张图,几段代码,几段阐述,甚至贴几个链接。它说是这样,我就觉得是这样罗!有的时候真的在怀疑真的是这样么?其中参考过 JavaScript 的 W3C 语言规范,是真的看不懂!你说让我去看 js 引擎吧? V8 是 c++实现的,网上去搜了下,评价是很难!!!况且我一个前端,没必要,,,。所以久而久之就开始陷入这样的困局了!
    13 条回复    2020-11-15 00:01:20 +08:00
    AndyAO
        1
    AndyAO  
       2020-11-13 19:55:17 +08:00
    没看懂你说的意思
    cmdOptionKana
        2
    cmdOptionKana  
       2020-11-13 20:00:36 +08:00   ❤️ 1
    建议找一个具体的问题,然后列出你所说的很多版本的题解(其中两三个),指出它们的不同点,然后提出你的具体疑问。

    不然你这样纯吐槽式说一通,是说不明白的。
    Rheinmetal
        3
    Rheinmetal  
       2020-11-13 20:09:23 +08:00
    看 nodejs api 文档吧 做题不一定需要了解实现细节
    SingeeKing
        4
    SingeeKing  
       2020-11-13 20:09:47 +08:00
    你说的这个问题可以看 https://zh.javascript.info/event-loop
    ochatokori
        5
    ochatokori  
       2020-11-13 20:13:16 +08:00 via Android
    别人整理好结论你说怀疑正确性,让你看源码又说很难,这
    dustinth
        6
    dustinth  
       2020-11-14 01:27:29 +08:00
    现代软件工程的目标就是分层模块化; 平时就是搬个砖, 去学材料学真没必要.
    musi
        7
    musi  
       2020-11-14 09:53:17 +08:00 via iPhone
    这些问题去找一些权威的文档,比如 ECMA262,如果看不懂就去 MDN 看看有没有,这两个都是比较权威的
    ZDavy
        8
    ZDavy  
       2020-11-14 10:18:06 +08:00
    要不要试试《 Webkit 技术内幕》这本书👀
    jones2000
        9
    jones2000  
       2020-11-14 10:28:23 +08:00   ❤️ 1
    都是开源的, 直接看源码不就可以了. 有什么难的, 又不让你写, 别人都写好了. 1 个月看不懂, 就用 1 年, 1 年不行 就用 2 年 ......
    faceRollingKB
        10
    faceRollingKB  
       2020-11-14 16:54:18 +08:00
    faceRollingKB
        11
    faceRollingKB  
       2020-11-14 17:00:50 +08:00
    第 2 版还没完成,先看第一版: https://github.com/getify/You-Dont-Know-JS/tree/1st-ed
    janus77
        12
    janus77  
       2020-11-14 17:13:14 +08:00
    没看懂你的意思+1……
    答案要自己亲身验证。如果文档说了一个定义,有个结论是根据这个定义得出来的,如果你自己写的代码能正确复现这个结论,不就可以反推出这个定义是对的么?什么叫“他说是这样就是这样”。明明是“你代码写出来就是这样”
    okcdz
        13
    okcdz  
       2020-11-15 00:01:20 +08:00
    书籍可能没有,你想要验证的一些东西其实可以从表象来验证。比如微任务宏任务,可以通过编写测试代码来验证,不用去看底层。

    如果真的对底层又兴趣的话,其实也不一定就看 v8,js 的引擎除了 v8 还有些简单的,比如 QuickJS,不过只是一个执行引擎,没有事件循环这些。实在看 v8 可以看早期版本。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5699 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 03:02 · PVG 11:02 · LAX 19:02 · JFK 22:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.