正如标题所说,我想知道JavaScript被称为“脚本语言”的确切原因?
我的理解是因为JavaScript只能由浏览器解释(而不是编译)。如果我错了,请纠正我。
但是如果没有编译那么0 == ''
怎么回事呢?编译器是否强制执行值,还是JavaScript引擎......?我有点困惑。
答案 0 :(得分:35)
我认为来自wikipedia的前两句很清楚:
脚本语言,脚本语言 或扩展语言是一种编程 允许某种控制的语言 单个或多个软件 (多个)应用。选择的语言 脚本目的往往很多 比使用的语言更高级别 主机应用程序......
在这种情况下,应用程序是浏览器。关于编译:
脚本是 通常,但并非总是从源头解释 代码或“半编译”到字节码 这是解释,不像 与之相关的应用程序, 传统上编译为 系统的本机机器代码 他们运行
关于0
等于''
,强制它不一定是由编译器实现的;它完全是关于运行时的JavaScript引擎。
我很遗憾从维基百科那里拿走了所有东西,但它很清楚,我把它引用了
PS:我觉得值得贴上这个:
许多人都在查看“脚本”语言 低于或不同于 语言尚未实现 脚本现场的流行度。 具有讽刺意味的是,这些语言相同 精心挑选的脚本由于 它们的质量和多功能性。
答案 1 :(得分:10)
你是对的。脚本语言基本上是一种不支持的语言;它“脚本”另一个应用程序(在这种情况下,浏览器)。我认为你所想的是解释语言。本质上意味着它不是编译的(至少不是传统意义上的),它是从源代码中“解释”的。您的示例实际上与编译无关。从字符串到整数的类型转换是在运行时完成的。
答案 2 :(得分:7)
要理解为什么JavaScript是脚本语言?首先,我们理解为什么Java不是脚本语言。
我认为脚本是指项目,游戏等的书面文本,由玩家直接阅读,玩家和剧本之间没有翻译。
在JavaScript中同样的想法我们的程序就像一个戏剧或电影,写在记事本或任何其他文本页面,如EditPlus,浏览器直接通过JavaScript引擎读取,不需要编译器和解释器来显示浏览器上的输出,浏览器就像一个播放器。
但Java要求编译器和解释器以计算机可读格式转换编写的Java编码并显示输出。因此,Java不是脚本语言,JavaScript是脚本语言。
此描述是关于为何JavaScript是脚本语言的观点。 我试图通过现实生活中的用途来理解这个问题。我觉得你很满意。
答案 3 :(得分:3)
它是一种解释性语言,在其访问中被沙箱化并用于特定目的。
这意味着:
答案 4 :(得分:3)
"脚本语言很像淫秽。我无法定义它,但是当我看到它时我就会知道它。" - Larry Wall
出于本答案的目的,我们假设它是指以下语言:
Javascript确实曾被认为是一种脚本语言,具有操纵DOM,执行表单验证和让耶稣跳舞的基本功能。它是由interpreter直接从源代码执行的。
但JS在过去几年中已经成熟了很多,其中包括lambdas,类(更好或更差),解构,迭代器和模块等高级功能,使其功能与大多数其他现代语言相媲美。不再局限于浏览器,它也常常在NodeJS下的服务器上独立运行。
Javascript现在普遍被JIT编译,要么是字节码(比如Java和C#),要么是直接编译到机器代码(比如C和C ++)。现代引擎提供了一个优化阶段,类似于大多数传统的编译语言。
V8在执行之前直接将JavaScript编译为native machine code。
Chakra Core [可以]做parallel JIT compilation ...
SpiderMonkey 38包含compiles JavaScript to machine code ...
的即时编译器(JIT)
因此,如果将现代JS视为脚本语言,那么同样适用于大多数其他非脚本语言"语言。
答案 5 :(得分:2)
脚本语言的概念是指示主机执行一系列操作(很像演员从脚本中读取)。
Javascript告诉浏览器该做什么以及如何处理事情,就像shell脚本,php或任何其他脚本语言为各自的主机所做的那样。