JavaScript初步理解

简介: JavaScript初步理解

今天看了一篇较为基础的文章,做个简要的总结,把文章内容进行提炼,再加上一些自己的理解。

JavaScript 是怎么运行起来的? (qq.com)

解释型语言和编译型语言

JavaScript 是一种解释型的编程语言,我们可能也听过编译型语言,那两种语言的区别是什么?

首先,我们常说的C++.java.Python 以及JavaScript都属于高级语言,但是计算机唯一可以识别的语言只有机器语言,也就是0和1.所以要把我们认识的代码转成计算机可以识别的语言有两种方式:解释和编译。下图是两种方式的对比。

总结:


编译型“一次编译,无限次运行”。编译器来编译,系统执行。(闭源,常见 C、C ++、Go。);


解释型“一次编写,到处运行”,解释器解释并执行。(开源,要不然运行不了啊,常见的PHP、Ruby、Python 和 JavaScript)


我自己的理解:


编译型就好比我们学校有个翻译机器(编译器),一次性翻译了一篇外国文献,你看的时候非常快(执行效率高),但是完成整个翻译的时候需要花费时间,翻译完成之后(二进制代码)对这个平台(学校)有一定的依赖性。


解释型就好比一个翻译,你说一句,现场给你翻译一句,所以运行时比编译型语言慢很多。


随着即时编译(JIT采用两种方式混合使用)的发展,逐渐缩小两者的差距,V8采用的就是这种技术。(热点代码)

JavaScript 代码的执行过程

字节码(byte code)是一种包含执行程序、由一序列 OP代码(操作码)/数据对 组成的二进制文件。字节码是一种中间码,它比机器码更抽象,需要直译器转译后才能成为机器码的中间代码。相比机器码,字节码不仅占用内存少,而且生成字节码的时间很快,提升了启动速度。

JavaScript引擎(解释器)

JavaScript引擎是执行JavaScript代码的计算机程序。主流浏览器都内置了JavaScript引擎。所有JavaScript引擎都包含一个调用栈和一个堆。


JavaScript是一种单线程编程语言,浏览器内核中只有一个 JavaScript 引擎线程。原因是作为浏览器脚本语言,JavaScript的主要用途是与用户互动,以及操作 DOM(文档对象模型 将 web 页面与脚本或编程语言连接起来),如果是多线程会带来很复杂的同步问题。


总结:


通过学习,对解释型语言和编译型语言有了总体的了解,又接着 JavaScript深入了解了解释型语言的具体执行过程。其实最后我还有些疑问,比如JavaScript代码的执行过程中最后的编译器和编译方式中的编译器一样吗?解释型语言解释和执行不是都由解释器来做吗,问题先放在着,等着后续的深入学习再来解答吧。

相关文章
|
6月前
|
JavaScript 前端开发
JavaScript:处理this
JavaScript:处理this
54 1
|
6月前
|
JavaScript 前端开发
JavaScript是什么,其特点又是什么?
JavaScript是什么,其特点又是什么?
44 0
|
JavaScript
JavaScript2
JavaScript2
42 0
|
Web App开发 存储 JavaScript
初识javaScript(一)
初识javaScript(一)
|
JavaScript 前端开发 API
JavaScript—DomApi
JavaScript—DomApi
|
JavaScript 前端开发 Java
【JavaScript】学后总结
JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型;它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。
|
JavaScript 前端开发 Java
09.初识javascript
09.初识javascript
60 0
|
JavaScript 前端开发 Java
JavaScript简识
本文主要介绍前端三剑客中的JavaScript的基础语法,关于JavaScript的DOM API在下文中介绍。
148 0
JavaScript简识
|
JavaScript 前端开发
JavaScript 介绍
JavaScript 介绍
201 0
JavaScript 介绍
|
前端开发 JavaScript
JavaScript的知识总结(4)
JavaScript的知识总结(4)