关于JavaScript的一些困惑?

JavaScript是一种通过解释器来执行的脚本语言,我们知道浏览器里是有js解释器存在的,所以它可以在浏览器里运行,另外一种运行环境则是Node.js环境,那么除去这两种环境它是否可以在别的环境中运行呢?只要有js解释器的存在是否就可以运行?js解释器又是什么呢?脚本文件、程序或者仅仅是几句代码?js解释器是否可以嵌入到机器内核,Vr设备中呢?还有一个最小白的问题,浏览器是软件吧?软件和程序的区别是?本人非科班出身,理论知识欠缺,所以希望各路大神不吝赐教一下,有些百度出来了,但有些貌似模棱两可!谢谢!

阅读 1.8k
3 个回答
  1. 高级语言有两大阵营,分别是编译型语言以及解释型语言。前者源程序会经过编译生成特定平台的二进制代码,这样机器在运行时直接将二进制代码调入内存里执行就可以了;而后者一般会有个解释器,运行时把源代码丢到解释器里,再由解释器将其转译成可执行代码然后执行。所以,js解释器你把它理解成将js代码转译成可执行代码的一个程序就可以了。当然如果环境适合的话,有解释器的地方就可以跑js。就我知道的一些,比如ps和ae里就可以跑(不过adobe给它起了个名叫jsx,还不是react那个jsx……),另外现在一些嵌入式开发也有用到js的场景。
  2. 至于解释器“是什么”的问题,展开来讲很大,而且我觉得我没法给你讲明白(笑哭?),你可以去翻翻justjavac的关于v8(js最常用的解释器,node.js就是基于它实现的)的东西就知道了。真想入门的话,可以在学好js的基础上,再学学Lua(这个学起来很快),然后写个Lua的解释器(《七周七语言》里的Lua章节有一个简单的实现,可以去看下)。
  3. 使用程序可以实现软件,我觉得你可以把软件看作是一个成品,程序是工具,就像木刻刀之于木雕。
  4. 你目前的这些疑问,其实比较集中于计算机硬件基础原理的部分,可以去看看《程序是怎样跑起来的》这样的书,但是还是建议你先打好js的基础,这样理解起抽象度更高的硬件原理才会相对容易些。

入门的话,这些知识开始可以直接忽略

  1. 解释器就是把你的代码编译成机器可执行的代码,所以只要有解释器,就可以在其他平台上面运行
  2. 解释器也是程序,也是用代码写的,功能比较复杂,需要比较抽象的编译原理加上底层知识
  3. 当然解释器可以嵌入到其他设备,一般嵌入式设备功能比较单一,所以用的是解释器的阉割版
  4. 软件是程序的集合

1.你可以认为软件=程序,我们能见到的大部分软件就是一个个的程序,当然驱动什么的也是程序
2.js解释器也是个程序,你可以理解为能理解js脚本语言,并作出相应动作的程序
3.你需要了解一下常见的编程语言,什么是静态语言,什么是解释性脚本语言
4.理论上js解释器可以嵌入到任何有cpu,有内存的设备,只是性能的问题,现在很多物联网设备也是可以用js来开发的

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题