资讯专栏INFORMATION COLUMN

做一个好前端必须要知道的事——JS语言

Near_Li / 847人阅读

摘要:准确的理解,是编译型语言,源代码整个编译成字节码,字节码,是解释型语言。是一个非常灵活的语言,支持命令式和函数式编程。编译型语言通常会用做配置文件,因为我们通常不会改编译后的字节码。

编程语言按各种方法可以分为各种类型,现在让我们来看看JS属于什么类型语言
解释型语言

按编译执行过程,可以分为编译型语言和解释型语言。比如

c 语言,必须先经过编译生成目标文件,然后链接各个目标文件和库文件,生成可执行文件。

Java、scala 则是先编译成字节码,然后解释执行字节码(可以理解为编译型语言也可以理解为解释型语言)。准确的理解,java 是编译型语言,源代码整个编译成字节码,java 字节码,是解释型语言。

Python 是解释型语言,不过也可以先进行编译,编译成 python 的字节码。

Javascript 是解释型语言。目前貌似还没有直接将 js 整个编译然后才执行(有说法是 js 动态性太强,先整体编译难度太大,执行性能不如解释执行高)。

⚠️注意:解释型语言也是需要编译的。区分编译型语言和解释型语言,是看源代码是否整个编译成目标代码然后执行还是编译一段执行一段。
对于传统编译型语言来说,编译步骤分为:词法分析、语法分析、语义检查、代码优化和字节生成。
但对于解释型语言来说,通过词法分析和语法分析得到语法树后,就可以开始解释执行了(根据语法树和符号表生成机器码)。
这也就解释了为什么都说 js 是解释执行的,读一句执行一句,但是实际上 js 中还没执行到的代码语法错误导致整个 js 不会执行的问题。例如:

console.log("不会被console出来");
= // 这里的语法错误导致了上面的代码也不会执行

其实js变量提升的现象也很明显的证明了js是先编译而后执行的
在浏览器中,多个

阅读需要支付1元查看
<