小编Ale*_*pun的帖子

为什么JS是解释型的而不是编译型的?

我读了很多关于解释、编译、即时编译等的东西,但是我还没有找到关于为什么JS被创建为解释性语言以及为什么仍然没有编译js的能力的明确解释代码。

我有一些想法,但我不确定其中任何一个:

  1. 如果浏览器可以执行(或只是传递给操作系统)二进制代码,那么这将是一个很大的漏洞,因为任何命令都可以注入到二进制代码中(例如,从文件系统中删除所有文件)。如果这是真的,是否可以教浏览器以某种方式验证二进制代码?对于后端来说这不是问题。那么,为什么NodeJS不能执行编译后的JS(PHP、Python也是如此,为什么它们是解释型的)?
  2. 二进制代码无法进行优化。真的是这样吗?优化的解释型 js 比编译(二进制)js 更快吗?
  3. 不同的CPU(架构)需要不同的二进制代码。这意味着不可能为任何客户端生成通用的二进制代码。这就是为什么 WebAssembly 模块使用一些中间代码?再说一次,为什么不对后端使用编译代码呢?

如果有人能解释上述一些或任何其他原因,我将非常感激。

javascript compilation interpretation node.js

2
推荐指数
1
解决办法
1965
查看次数

标签 统计

compilation ×1

interpretation ×1

javascript ×1

node.js ×1