javascript应用在哪里

简介

进程虚拟机和系统虚拟机

一篇给小白看的 JavaScript 引擎指南

“系统虚拟机”提供了一个可以运行操作系统的完整仿真平台。Mac 用户很熟悉的 Parallels 就是一个允许你在 Mac 上运行 Windows系统虚拟机。

另一方面,“进程虚拟机”不具备全部的功能,能运行一个程序或者进程。Wine 是一个允许你在 Linux 机器上运行 Windows 应用的进程虚拟机,但是并不在 Linux 中提供完整的 Windows 操作系统。

JavaScript 虚拟机是一种进程虚拟机,专门设计来解释和执行的 JavaScript 代码。

语言 引擎 类型
java jvm 编译
python python 解释器 解释
javascript javascript引擎 解释

预处理:有时为了提高运行效率,会将javascript源码先编译成字节码,然后解释器(引擎)逐行执行字节码。java也有类似的目的,比如代码引用另外一个jar,因为jar都是class文件,所以运行时就省了编译jar java源码的负担。

javascript的一些特性

JavaScript 运行机制详解:再谈Event Loop

主要有以下基本特点:

  1. JavaScript是单线程
  2. 任务队列

浏览器环境

JavaScript代码嵌入网页的方法

  1. <script>标签
  2. 事件属性:代码写入HTML元素的事件处理属性,比如onclick或者onmouseover

网页加载流程

  1. 浏览器一边下载HTML网页,一边开始解析
  2. 解析过程中,发现<script>标签
  3. 暂停解析,网页渲染的控制权转交给JavaScript引擎
  4. 如果<script>标签引用了外部脚本,就下载该脚本,否则就直接执行
  5. 执行完毕,控制权交还渲染引擎,恢复往下解析HTML网页

浏览器的核心是两部分:渲染引擎和JavaScript解释器(又称JavaScript引擎)。渲染引擎的主要作用是,将网页代码渲染为用户视觉可以感知的平面文档。渲染引擎根据JavaScript提供的桥接接口提供给JavaScript访问DOM的能力.

native 环境

React Native 初探(iOS)

JavaScript(引擎)在浏览器中的应用几乎是尽人皆知的。实际上,JavaScript技术也可以使用在非浏览器应用程序当中,从而让应用程序具有自动的脚本功能。

javascript引擎一般由C/c++实现。

我们听说过,在java中弄一个groovy引擎+groovy脚本、lua引擎+lua脚本、javascript引擎+javascript脚本 来处理一些经常变化的需求。在ios上,用object-c嵌入javascript引擎,可以解释执行JavaScript代码(object-c与js彼此交互)。如果这个javascript 代码占了大头,带来的一个影响就是:开发ios app,从感觉上,由写object-c程序,变成了在写java script。