Won*_*ing 24 javascript scripting
正如标题所说,我想知道JavaScript被称为"脚本语言"的确切原因?
我的理解是因为JavaScript只是由浏览器解释(而不是编译).如我错了请纠正我.
但如果没有编译,那怎么回事0 == ''呢?编译器是否强制执行值,还是JavaScript引擎......?我有点困惑.
vic*_*ugo 36
我认为维基百科的前两句很清楚:
脚本语言,脚本语言或扩展语言是一种编程语言,允许对单个或多个软件应用程序进行某些控制.为脚本目的选择的语言通常比宿主应用程序使用的语言高得多......
在这种情况下,应用程序是浏览器.关于编译:
脚本通常(但不总是)从源代码或"半编译"解释为解释的字节码,与它们关联的应用程序不同,传统上编译为运行它们的系统的本机机器代码
关于0等于'',强制它不一定是由编译器实现的; 它是运行时的JavaScript引擎.
我很遗憾从维基百科那里拿走了所有东西,但它很清楚,我把它引用了
PS:我觉得值得贴这个:
许多人认为"脚本"语言比在脚本场景中没有普及的语言更差或者有些不同.具有讽刺意味的是,由于其质量和多功能性,这些相同的语言被精心选择用于编写脚本.
Sas*_*gov 10
你是部分正确的.脚本语言基本上是一种不支持的语言; 它"脚本"另一个应用程序(在这种情况下,浏览器).我认为你所想的是一种解释性语言.本质上意味着它不是编译的(至少不是传统意义上的),它是从源代码中"解释"的.您的示例实际上与编译无关.从字符串到整数的类型转换是在运行时完成的.
小智 7
要理解为什么JavaScript是脚本语言?首先,我们理解为什么Java不是脚本语言.
我认为Scripting意味着一个项目,游戏等的书面文本,由玩家直接阅读,玩家和剧本之间没有翻译.
在JavaScript中同样的想法我们的程序就像一个戏剧或电影,写在记事本或任何其他文本页面,如EditPlus,浏览器直接通过JavaScript引擎读取,不需要编译器和解释器来显示输出浏览器,浏览器就像一个玩家.
但Java要求编译器和解释器以计算机可读格式转换编写的Java编码并显示输出.因此,Java不是脚本语言,JavaScript是脚本语言.
这个描述是我对为什么JavaScript是脚本语言的看法.我试图通过现实生活中的用途来理解这个问题.我觉得你很满意.
“脚本语言很像淫秽。我无法定义它,但是看到它我就会知道。” - 拉里·沃尔
出于此答案的目的,我们假定它表示的语言是:
实际上,JavaScript实际上曾经被认为是一种脚本语言,具有操纵DOM,执行表单验证和使耶稣跳舞的基本功能。它是由翻译直接从源代码执行的。
但是JS在过去几年中已经相当成熟,具有诸如lambda,类(无论好坏),解构,迭代器和模块等高级功能,这些功能使其功能可以与大多数其他现代语言相提并论。不再局限于浏览器,它通常也可以在NodeJS下的服务器上独立运行。
现在,Javascript普遍进行了JIT编译,可以编译为字节码(如Java和C#),也可以直接编译为机器代码(如C和C ++)。现代引擎提供了一个优化阶段,类似于大多数传统的编译语言。
V8 在执行之前将JavaScript直接编译为本机代码。
Chakra Core [可以]执行并行JIT编译 ...
SpiderMonkey 38包含一个即时编译器(JIT),可将JavaScript编译为机器代码 ...
因此,如果现代JS被认为是一种脚本语言,那么大多数其他非“脚本”语言也应采用相同的语言。