为了账号安全,请及时绑定邮箱和手机立即绑定

关于JavaScript的一些困惑?

关于JavaScript的一些困惑?

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

3 回答

?
LEATH

TA贡献1936条经验 获得超6个赞

  1. 高级语言有两大阵营,分别是编译型语言以及解释型语言。前者源程序会经过编译生成特定平台的二进制代码,这样机器在运行时直接将二进制代码调入内存里执行就可以了;而后者一般会有个解释器,运行时把源代码丢到解释器里,再由解释器将其转译成可执行代码然后执行。所以,js解释器你把它理解成将js代码转译成可执行代码的一个程序就可以了。当然如果环境适合的话,有解释器的地方就可以跑js。就我知道的一些,比如ps和ae里就可以跑(不过adobe给它起了个名叫jsx,还不是react那个jsx……),另外现在一些嵌入式开发也有用到js的场景。

  2. 至于解释器“是什么”的问题,展开来讲很大,而且我觉得我没法给你讲明白(笑哭?),你可以去翻翻justjavac的关于v8(js最常用的解释器,node.js就是基于它实现的)的东西就知道了。真想入门的话,可以在学好js的基础上,再学学Lua(这个学起来很快),然后写个Lua的解释器(《七周七语言》里的Lua章节有一个简单的实现,可以去看下)。

  3. 使用程序可以实现软件,我觉得你可以把软件看作是一个成品,程序是工具,就像木刻刀之于木雕。

  4. 你目前的这些疑问,其实比较集中于计算机硬件基础原理的部分,可以去看看《程序是怎样跑起来的》这样的书,但是还是建议你先打好js的基础,这样理解起抽象度更高的硬件原理才会相对容易些。


查看完整回答
反对 回复 2019-04-03
?
慕村9548890

TA贡献1884条经验 获得超4个赞

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

查看完整回答
反对 回复 2019-04-03
  • 3 回答
  • 0 关注
  • 415 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信