首页 > 请问javascript是用什么语言写的?

请问javascript是用什么语言写的?

忽然想到这个问题,通常我们用的python是用C写的,有一些底层需要理解可以查看源码.javascript也已经封装好了很多东西,比如 onmouseover事件,如果我想看他的源码实现,应该从哪入手?


我想说的是,onmouseover这个是DOM的范畴,在JS引擎内可找不到任何关于DOM的实现。
DOM树的解析、构造、布局是浏览器内核(渲染引擎)的重要功能,常见的开源的有webkit(Safari/chrome旧版/android旧版)、gecko(火狐)和blink(chrome/android/新opera)等

javascript本身几乎没有“封装”或“实现”什么东西,全部内置对象甚至可以很容易地列出来

以上几个对象和parseInt/Float eval isNaN encodeURIComponent等少数几个函数合起来就是所有JS原生的能力了


javascript 是一门很单纯的语言,只是浏览器为了让javascript可以操作自己在window对象上线实现了一堆接口


标题和内容问题不一致...

JS 是语言, 鼠标事件触发是 DOM 的处理, 不同浏览器不一样:

Chrome 的 JS 引擎是 V8, 处理 DOM 的引擎是 Blink(Webkit),
要看代码去看 Chromum 的仓库:
https://code.google.com/p/chromium/

Firefox 引擎..每次名字不一样, IonMonkey 什么 **Monkey 的.. 排版引擎是 Gecko,
到仓库去找找吧, 不大清楚在哪:
https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Source_Code/Downloading_Source_Archives

IE.. 估计看不了源码

不会 C++ 的顺便问下楼主 C++ 水平如何...


google chrome的js引擎是v8,nodejs用的也是这个,据说是目前速度最快的,用c++写的,代码在此http://code.google.com/p/v8/


JavaScript是浏览器上的ECMAScript的实现,具体的实现手法一般都通过JS引擎去解析的。不同的浏览器有这不同的引擎实现,所以造就了不同浏览器上的JS代码的细微差异,关于JS引擎可以参见:http://zh.wikipedia.org/wiki/JavaScript%E5%BC%95%E6%93%8E

想要查看JavaScript的源码就直接去看引擎的源码就好了,这里给出Googl和Firefox引擎源码的获取方法吧:


补充一个 JavaScript 实现的 JavaScript 虚拟机:

https://github.com/jterrace/js.js/


多研究一下js的运行机制,比如看看JavaScript设计模式之类的书,应该会对浏览器中js是如何工作的会比较清楚些。至于研究内核代码,我想暂时应该还没到那个地步。

【热门文章】
【热门文章】