为什么JavaScript被称为“脚本语言”?

时间:2009-06-09 06:27:40

标签: javascript scripting

正如标题所说,我想知道JavaScript被称为“脚本语言”的确切原因?

我的理解是因为JavaScript只能由浏览器解释(而不是编译)。如果我错了,请纠正我。

但是如果没有编译那么0 == ''怎么回事呢?编译器是否强制执行值,还是JavaScript引擎......?我有点困惑。

6 个答案:

答案 0 :(得分:35)

我认为来自wikipedia的前两句很清楚:

  

脚本语言,脚本语言   或扩展语言是一种编程   允许某种控制的语言   单个或多个软件   (多个)应用。选择的语言   脚本目的往往很多   比使用的语言更高级别   主机应用程序......

在这种情况下,应用程序是浏览器。关于编译:

  

脚本是   通常,但并非总是从源头解释   代码或“半编译”到字节码   这是解释,不像   与之相关的应用程序,   传统上编译为   系统的本机机器代码   他们运行

关于0等于'',强制它不一定是由编译器实现的;它完全是关于运行时的JavaScript引擎。

我很遗憾从维基百科那里拿走了所有东西,但它很清楚,我把它引用了

PS:我觉得值得贴上这个:

  

许多人都在查看“脚本”语言   低于或不同于   语言尚未实现   脚本现场的流行度。   具有讽刺意味的是,这些语言相同   精心挑选的脚本由于   它们的质量和多功能性。

答案 1 :(得分:10)

你是对的。脚本语言基本上是一种不支持的语言;它“脚本”另一个应用程序(在这种情况下,浏览器)。我认为你所想的是解释语言。本质上意味着它不是编译的(至少不是传统意义上的),它是从源代码中“解释”的。您的示例实际上与编译无关。从字符串到整数的类型转换是在运行时完成的。

答案 2 :(得分:7)

要理解为什么JavaScript是脚本语言?首先,我们理解为什么Java不是脚本语言。

我认为脚本是指项目,游戏等的书面文本,由玩家直接阅读,玩家和剧本之间没有翻译。

在JavaScript中同样的想法我们的程序就像一个戏剧或电影,写在记事本或任何其他文本页面,如EditPlus,浏览器直接通过JavaScript引擎读取,不需要编译器和解释器来显示浏览器上的输出,浏览器就像一个播放器。

但Java要求编译器和解释器以计算机可读格式转换编写的Java编码并显示输出。因此,Java不是脚本语言,JavaScript是脚本语言。

此描述是关于为何JavaScript是脚本语言的观点。 我试图通过现实生活中的用途来理解这个问题。我觉得你很满意。

答案 3 :(得分:3)

它是一种解释性语言,在其访问中被沙箱化并用于特定目的。

这意味着:

  • 运行时解释,未编译
  • 通常通过特定的API
  • 给予对系统的有限访问权限
  • 通常只给出API调用以帮助它实现其预期目的,仅此而已(仅可使用第三方添加)

答案 4 :(得分:3)

2017年的更新

  

"脚本语言很像淫秽。我无法定义它,但是当我看到它时我就会知道它。" - Larry Wall

出于本答案的目的,我们假设它是指以下语言:

  1. 缺乏真实"的一些特征。语言(无论那意味着什么)所以最有用的作为"胶水"在系统中的其他组件之间,和
  2. 是解释而不是编译。
  3. Javascript确实曾被认为是一种脚本语言,具有操纵DOM,执行表单验证和让耶稣跳舞的基本功能。它是由interpreter直接从源代码执行的。

    但JS在过去几年中已经成熟了很多,其中包括lambdas,类(更好或更差),解构,迭代器和模块等高级功能,使其功能与大多数其他现代语言相媲美。不再局限于浏览器,它也常常在NodeJS下的服务器上独立运行。

    Javascript现在普遍被JIT编译,要么是字节码(比如Java和C#),要么是直接编译到机器代码(比如C和C ++)。现代引擎提供了一个优化阶段,类似于大多数传统的编译语言。

    V8(Chrome,Node)

      

    V8在执行之前直接将JavaScript编译为native machine code

    脉轮代码(Edge)

      

    Chakra Core [可以]做parallel JIT compilation ...

    SpiderMonkey(Firefox)

      

    SpiderMonkey 38包含compiles JavaScript to machine code ...

    的即时编译器(JIT)

    因此,如果将现代JS视为脚本语言,那么同样适用于大多数其他非脚本语言"语言。

答案 5 :(得分:2)

脚本语言的概念是指示主机执行一系列操作(很像演员从脚本中读取)。

Javascript告诉浏览器该做什么以及如何处理事情,就像shell脚本,php或任何其他脚本语言为各自的主机所做的那样。