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

为什么JavaScript被称为“a”;脚本语言;?,javascript,scripting,Javascript,Scripting,正如标题所说,我想知道JavaScript被称为“脚本语言”的确切原因是什么 我的理解是,这是因为JavaScript只由浏览器解释(而不是编译)。如果我错了,请纠正我 但是如果没有编译,那么为什么0==''是真的?编译器不是强制这些值,还是JavaScript引擎。。。?我有点困惑。我认为文章的前两句话很清楚: 脚本语言,脚本语言 或者说扩展语言是一种编程语言 一种语言,它允许对一个对象进行某种控制 单个或多个软件 申请书。选择的语言 脚本编写的目的通常非常简单 比所使用的语言更高级 主机应用

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

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


但是如果没有编译,那么为什么
0==''
是真的?编译器不是强制这些值,还是JavaScript引擎。。。?我有点困惑。

我认为文章的前两句话很清楚:

脚本语言,脚本语言 或者说扩展语言是一种编程语言 一种语言,它允许对一个对象进行某种控制 单个或多个软件 申请书。选择的语言 脚本编写的目的通常非常简单 比所使用的语言更高级 主机应用程序

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

脚本是 通常,但并非总是,从源代码进行解释 代码或“半编译”为字节码 这是被解释的,不像 与之关联的应用程序, 传统上是编译为 上系统的本机计算机代码 他们经营的

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

我很抱歉拿走了维基百科上的所有内容,但它太清楚了,我引用了它

附言:我觉得粘贴这个也很有价值:

许多人认为“脚本”语言 不如或与之不同 尚未实现的语言 脚本场景中的流行度。 具有讽刺意味的是,同样的语言 由于 它们的质量和多功能性


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

它是一种解释语言,在访问时被沙盒化,并用于特定目的

这意味着:


  • 它在运行时进行解释,而不是编译
  • 通常通过特定的API对系统进行有限的访问
  • 通常只提供帮助其实现预期目的的API调用,除此之外什么都没有(尽管可以使用第三方添加)

    • 脚本语言的概念是指导主机执行一系列操作(很像演员阅读脚本)


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

      了解Javascript为什么是脚本语言?首先,我们理解为什么Java不是脚本语言

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

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

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

      这个描述是我对JavaScript为什么是脚本语言的看法。 我试图理解这个问题,通过现实生活中的应用联系起来。我认为您很满意。

      2017年的最新情况 “脚本语言很像淫秽。我不能定义它,但我看到它就会知道。”-拉里·沃尔

      为了回答这个问题,我们假设它指的是一种语言:

    • 缺少“真实”语言的一些特性(无论这意味着什么),因此作为系统中其他组件之间的“粘合剂”最有用,并且
    • 是解释的,而不是编译的
    • Javascript确实一度被认为是一种脚本语言,它具有操纵DOM、执行表单验证和让页面起舞的基本功能。它是由一个代理直接从源代码执行的

      但是JS在过去的几年中已经相当成熟,具有先进的特性,例如lambdas、类(更好或更坏)、破坏、迭代器和模块,这些功能使它的能力与大多数其他现代语言相当。不再局限于浏览器,它也通常在NodeJS下的服务器上独立运行

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

      V8(铬合金,节点) V8在执行之前将JavaScript直接编译到

      脉轮密码(边缘) 脉轮核心[能]做什么

      SpiderMonkey(Firefox) SpiderMonkey 38包括一个即时编译器(JIT),它可以


      因此,如果现代JS被认为是一种脚本语言,那么它也应该适用于大多数其他非“脚本”语言。

      谢谢victor的帮助。但是,关于我的第二个qs的任何信息,如果它们不相等,Javascript==会尝试将RHS类型转换到左侧。因此,''==0为false,但0==''为true。同样的错误=='0'为真。最好使用===和==需要指出的是,最近的Node.js改变了这个旧答案的上下文。为了清晰起见,脚本语言可以用于操作系统