=======================================================
有一段时间,经常耳闻web前端的福音,对高性能的V8议论纷纷。
其实对js解析引擎没有深入了解,就是自己瞎想了一下她的样子。
今天决定稍微认识一下:
首先JavaScript解析引擎就是能够“读懂”JavaScript代码的程序。
以前上课学习 java的时候,老师说java是一门静态语言,运行java程序会有一个编译的过程,就是将源代码编译为另外一种代码(比如机器码,或者字节码);
以前上课学习javascript的时候,老师说js是一门动态语言,运行js代码会有一个解释的过程,就是直接解析并将代码运行结果输出(firebug的console就是一个JavaScript的解释器)。
但是现在有人说,很难去界定JavaScript引擎它到底算是个解释器还是个编译器。因为,egV8(Chrome的JS引擎),它其实为了提高JS的运行性能,在运行之前会先将JS编译为本地的机器码(native machine code),然后再去执行机器码。
--------------》那就暂时不要去界定好了,知道她是如何工作的就ok了
====================================================
有一段时间,觉得去了解一下ECMAScript会使自己变得更牛逼,此时就会想
ECMAScript和js引擎有关系吗?
JavaScript引擎是一段程序,我们写的JavaScript代码也是程序,如何让程序去读懂程序呢?这就需要定义规则(标准)。JavaScript引擎就可以根据这个标准去解析JavaScript代码了。so。。ECMAScript定义了语言的标准,JavaScript引擎根据它来实现。
================================================
有一段时间,觉得浏览器是js程序的唯一宿主,知道js引擎只是浏览器的组成部分之一,具体点呢?就不知道了
那么JavaScript解析引擎与浏览器?
因为浏览器还要做很多别的事情,比如解析页面、渲染页面、Cookie管理、历史记录等等。因此一般情况下JavaScript引 擎都是浏览器开发商自行开发的。比如:IE9的Chakra、Firefox的TraceMonkey、Chrome的V8等等。
嗨。。。。。。这样真的好吗