所有编程语言都是采用下面的一些步骤实现 从程序代码 到 执行的
对于需编译代码: 编译 代码 成为 可执行的 机器代码 在机器中执行 如C/C++
对于需编译成伪代码的 : 编译 代码 成为 可执行的 伪代码(针对运行环境——虚拟机的可执行代码),在虚拟机中执行, 如java
解释执行的代码:在解释运行环境(虚拟机)中读取代码,执行
当然这样的分类也不是绝对的,比如一样可以写出对C进行解释执行的环境,让javascript编译执行。
其实 程序代码 的执行最终条件是变成 可执行的机器指令,这个过程可以是编译也可以是解释执行,但无论如何,都有一个 程序代码 ————> 可执行机器代码 的转换过程,只要有条件满足这个过程, 程序代码 就是可执行的了(其实这个可执行的也是有条件的,就是机器代码的执行环境)。
由上可见,程序代码 的可执行 需要能够转换成 可执行的机器码,并放置在对于环境中。
从而可以明确 javascript 并不一定必须要浏览器中执行,甚至不一定是解释执行。 你前面提到的node.js 就是一个javascript的运行环境,它还提供了很多浏览器环境中不能提供的对系统环境调用的接口来丰富javascript对系统操控能力,例如系统进程创建控制能力。 你如果有能力也能自己实现javascript的运行环境/编译系统,来实现对特定环境下利用javascript编程实现控制运行。