学习JavaScript(DOM等) 我在C、C++、各种汇编程序中编写代码已有15年,最近一直涉及COQ、函数语言和一些理论PL理论。昨天,我第一次看了JavaScript,读了Crockford的JavaScript:好的部分。好的,从语法上讲,这种语言并不复杂,它使用标准的PL结构,带有一些难看的遗留问题

学习JavaScript(DOM等) 我在C、C++、各种汇编程序中编写代码已有15年,最近一直涉及COQ、函数语言和一些理论PL理论。昨天,我第一次看了JavaScript,读了Crockford的JavaScript:好的部分。好的,从语法上讲,这种语言并不复杂,它使用标准的PL结构,带有一些难看的遗留问题,javascript,Javascript,如果我想做一些具体的事情,我在网上找到的大多数东西似乎都只是代码片段,然后是大量的评论,如“非常好”、“谢谢”等等。但是很少有人讨论这个例子的作用以及它为什么有效 了解HTML解析过程如何与JavaScript交互的最佳资源/书籍是什么?从JavaScript到内存中已解析页面的接口是什么?如何直接操作这些数据?由于现代网页可以在不重新加载整个网页的情况下添加和删除元素,因此必须有在重新加载后向网站添加元素的方法,以及删除和更改内容的方法。我在哪里可以深入了解它的工作原理?如何基于服务器端数据动

如果我想做一些具体的事情,我在网上找到的大多数东西似乎都只是代码片段,然后是大量的评论,如“非常好”、“谢谢”等等。但是很少有人讨论这个例子的作用以及它为什么有效

了解HTML解析过程如何与JavaScript交互的最佳资源/书籍是什么?从JavaScript到内存中已解析页面的接口是什么?如何直接操作这些数据?由于现代网页可以在不重新加载整个网页的情况下添加和删除元素,因此必须有在重新加载后向网站添加元素的方法,以及删除和更改内容的方法。我在哪里可以深入了解它的工作原理?如何基于服务器端数据动态构建此类元素?看起来大多数资料都只是告诉你一些图书馆是如何做到这一点的,但我不喜欢使用图书馆,除非我了解它的功能和原因

另一个方面(可能是另一个问题)是涉及虚拟机如何实际处理不同JavaScript构造的任何资源/书籍。出于性能方面的原因,很高兴知道这一点

我也理解这是否会因为不太具体而关闭。然而,如果以较短的方式编写,我的第一组问题非常具体:JavaScript如何与内存中表示呈现页面的对象进行交互

这取决于浏览器供应商。他们都提供演讲、博客和视频,这些可能会也可能不会满足你的求知欲

当涉及到解析HTML时,必须遵循一些方法,但具体方法取决于浏览器。DOM也是如此。有一个定义接口(和行为)的方法,但是如何

至于虚拟机:没有虚拟机。每个JavaScript引擎都有自己的一个。一些JavaScript引擎是。作为C++开发人员,可能对你来说很有趣。再说一遍:供应商演示


我能推荐的最好的书是Nicholas C.Zakas的“Web开发者的专业JavaScript,第三版”。这是对浏览器中JavaScript的不可知库、广泛和深入的介绍。

是的,我知道这是特定于实现的。我或多或少对解析的各个阶段如何与JS接口感兴趣,因为我认为这必须标准化。我还假设他们在VMs中对许多结构使用非常相似的翻译,也就是说,我可以假设一个浏览器中的结构速度慢,而其他浏览器中的结构速度慢。我将澄清这个问题以消除任何不必要的歧义…V8开发人员的博客是很好的信息来源,例如:@EdvardFagerholm No。这就是重点。例如,
Object.create
在Chrome中的速度非常慢(如果没有改变的话),而
new
的速度非常快。在其他一些浏览器中,
Object.create
更快。只要可能,Chrome的engine V8会在内部为对象创建类构造。假设其他人也这样做是不安全的。IE的最新版本有一个像样的JS引擎,但与其他浏览器相比,有些操作速度慢得可笑。唯一的标准是语言。
... how the browser parses html? How does it represent it in memory?
... how the VM actually handles different JavaScript constructs