JavaScript 属于解释型语言, 不需要在运行前编译, 在运行程序的时候才翻译, 专门的解释器负责在每个语句执行的时候解释程序代码.
对程序来说, 计算机需要一个 "翻译", 即把程序代码变成计算机可以理解的语言: 0 和 1 组成的包含信息的序列. 目前存在两种翻译类型: 一个是编译, 一个是解释. 两种方式都需要对代码进行翻译, 只是翻译的时间不同而已.
编译型语言与解释型语言:
编译型语言在计算机运行代码前, 先把代码翻译成计算机可以理解的文件, 比如 EXE 文件. 这样说有些不太准确, 实际上在生成 EXE 文件之前, 还要做一个整合的操作, 但这不是本节要关心的.
这个 EXE 文件只需要经过一次编译就可以运行了, 而且除非修改代码, 否则都不需要重新编译. 所以编译型语言的程序执行效率高.
解释型语言则不同, 解释型语言的程序不需要在运行前编译, 在运行程序的时候才翻译, 专门的解释器负责在每个语句执行的时候解释程序代码. 这样解释型语言每执行一次就要翻译一次, 效率比较低.
由于 JavaScript 属于解释型语言, 这就表示每句代码只有在运行时, 系统才知道这句代码是否有错. 由于编译型语言在运行前进行了编译, 编译器对所有代码都进行了检查, 这样就不会产生一些低级错误, 例如使用了不存在的名字, 或者使用了错误的名字. 而 JavaScript 就可能会出现这些问题.
目前的大部分工具, 对 JavaScript 脚本语言的调试都支持得不是很好, 这主要是由语言性质决定的.
虽然在编写简单脚本的时候, 这并不是什么大问题, 但随着 web 应用不断变化的需求, 编写大量脚本是不可避免的, 这就需要开发者更细心, 更专心地对付这些脚本了.
来源: http://www.css88.com/qa/javascript/11384.html