解释型语言
一般来说,我们平常用到的大部分语言为分解释型语言和编译型语言。
还不太清楚这两种语言的同学可以看看下面的例子:
我们把一个程序的运行理解为听一个人演讲,听众是计算机,演讲人是程序员。他们使用不同的语言,让计算机直接这么听演讲,它肯定是听不懂的,于是我们有两个方案:
1、找人同步翻译
我们找翻译能力超强的人作为翻译官。每当我们说完一句话,翻译官立刻跟听演讲的计算机说“刚才他那句话的意思是………………”。
2、预先翻译好讲话稿
我们的演讲稿必须事先写好,然后让翻译官将我们写好的演讲稿翻译成指定的语言。等到真正演讲大会的时候,随便找个口语好的人读一下翻译后的稿子就可以了。
这两个方案分别就是解释型语言和编译型语言了。前者每读一行代码执行一行代码,后者需要有一个编译的过程,将我们的代码编译成计算机语言再执行。
JavaScript是一种解释型语言,解释型语言不需要编译也能立刻执行代码,非常适合用于变动性大的场景,比如浏览器,我们可以在任意一个时间将head中添加一个新的js引用,由于是解释型语言,浏览器能够立刻解释这段脚本并执行。
一般来说,从运行效率上讲,编译型语言是非常有优势的,就像已经把文章翻译好了一样,只需要不动脑子地去读就行了。
但是从灵活性上讲,解释型语言有着编译型语言无法超越的优势,只要有一个解析器,不需要任何翻译工作,就可以随时随地的执行任何语句。