javascript解析引擎(每天有学习一点篇)
=======================================================
有一段时间,经常耳闻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等等。
嗨。。。。。。这样真的好吗
javascript解析引擎(每天有学习一点篇)的更多相关文章
- javascript MVC(每天有学习一点篇)
“写的不是代码,是你的思维”,经常觉得自己写的代码“皮粗肉糙”的,看到那些要么精致小巧,要么优雅大方,要么光明磊落的代码时,常常会黯然神伤外加垂涎欲滴. why?(为什么我的代码不能如此..) whe ...
- DOM编程(每天有学习一点篇)
每次想到“DOM”编程就会自然联想到“性能瓶颈”.我觉得有两部分原因: 1.DOM自己本身操作代价昂贵,因为浏览器通常要求DOM 实现和JavaScript 实现保持相互独立: 2.嘿嘿,本人自身的原 ...
- .net 开源 JavaScript 解析引擎
1. Javascript .NET 地址为:http://javascriptdotnet.codeplex.com/ 使用方法: Quick Start This section provides ...
- javascript模板引擎之artTemplate 学习笔记
<div id="content"></div><div id="content1"></div><h1& ...
- 高性能JavaScript模板引擎原理解析
随着 web 发展,前端应用变得越来越复杂,基于后端的 javascript(Node.js) 也开始崭露头角,此时 javascript 被寄予了更大的期望,与此同时 javascript MVC ...
- 高性能JavaScript模板引擎实现原理详解
这篇文章主要介绍了JavaScript模板引擎实现原理详解,本文着重讲解artTemplate模板的实现原理,它采用预编译方式让性能有了质的飞跃,是其它知名模板引擎的25.32 倍,需要的朋友可以参考 ...
- JavaScript 模板引擎实现原理解析
1.入门实例 首先我们来看一个简单模板: <script type="template" id="template"> <h2> < ...
- Javascript模板引擎mustache.js详解
mustache.js是一个简单强大的Javascript模板引擎,使用它可以简化在js代码中的html编写,压缩后只有9KB,非常值得在项目中使用.本文总结它的使用方法和一些使用心得,内容不算很高深 ...
- 一天学习一点之express demo
接着上一篇,安装了nodejs之后,再安装express,顺序执行以下命令 1.npm -g install express; 2.npm -g express-generator; 3.使用exp ...
随机推荐
- java中的传值与传引用
java函数中的传值和传引用问题一直是个比较“邪门”的问题,其实java函数中的参数都是传递值的,所不同的是对于基本数据类型传递的是参数的一份拷贝,对于类类型传递的是该类参数的引用的拷贝,当在函数体中 ...
- IEEE参考文献格式
IEEE参考文献格式 由于国外期刊参考文献与国内参考文献的格式有很大区别,其中最常用的参考文献为会议论文.书籍.期刊文献,所以特别在此记录说明,方便以后使用. 会议论文(Published Confe ...
- 集合ArrayList
/*集合ArrayList * 例如: * 1.创建:ArrayList<Egg> myList = new ArrayList<Egg>(); * Egg类型的集合 ...
- iOS 服务器端推送证书p12文件制作
A.苹果服务器地址: Production和development用的push的服务器不同pdev是:$apnsHost = 'gateway.sandbox.push.apple.com';pro是 ...
- 黑马程序员:Java编程_面向对象
=========== ASP.Net+Android+IOS开发..Net培训.期待与您交流!=========== 面向对象和面向过程都是一种思想,面向过程强调的是功能行为,面向对象是将功能封装进 ...
- Opencv读取与显示图片
#include "stdafx.h"#include "cv.h"#include "cxcore.h"#include "hi ...
- Shell基础-Bash变量-用户自定义变量
变量设置规则: 变量名称可以由字母.下划线和数字组成,但是不能由数字开头. 在Bash中变量的默认类型是字符串类型,若需要进行数值运算,则需指定变量类型为数值型.变量用等号链接,且两边不能有空格.若需 ...
- 使用as3控制动画的播放与暂停
1.需要两个按钮元件 2.在属性面板为两个按钮元件分别命名为pausebutton与playButton 3.代码 stop(); pausebutton.visible = false; playB ...
- JSTL中的scope属性
前两天接到老大一个任务:要验证一下<c:import>能否动态地引入不同的文件.当时很兴奋,要知道在对日外包里面,这个也得算技术活了.呵呵! 说干就干,写了两个jsp文件:m.jsp t ...
- 如何让AutoCAD自动加载Arx,比如ArxDbg.arx
1.在AutoCAD的安装根目录下,用记事本创建一个acad.rx文件,如下 ------acad.rx----- ArxDbg.arx -------------------- 2.将ArxDbg. ...