搜索
首页web前端js教程JavaScript的核心:它是在C还是C上构建的?

JavaScript不是在C或C上构建的;这是一种解释的语言,在通常用c编写的引擎上运行。 1)JavaScript被设计为用于Web浏览器的轻巧,解释的语言。 2)发动机从简单的口译员演变为JIT编译器,通常在C中,提高了性能。 3)用C编写的V8引擎将JavaScript编译为本机机器代码,从而提高了执行速度。 4)C的功能对于构建复杂的JavaScript引擎至关重要,但是JavaScript的语法和语义仍然独立。

JavaScript \的核心:它是在C还是C上构建的?

JavaScript是一种彻底改变网络开发的语言,经常引起人们对其基本架构的好奇心。许多人想知道:“ JavaScript是建立在C还是C上的?”让我们深入研究这个引人入胜的话题,并探讨JavaScript的核心,其演变以及它如何与这些基础语言相互作用。

JavaScript的核心不是直接建立在C或C上。相反,这是一种在引擎上运行的解释语言,通常用C或其他低级语言编写。最著名的JavaScript引擎是V8,由Google为Chrome and Node.js开发,实际上是用C编写的。但是,这并不意味着JavaScript本身是“构建在” c上的。相反,使用C进行了解释和执行JavaScript的引擎。

让我们深入研究这种关系,并探索JavaScript核心的复杂性。


JavaScript的成立可以追溯到1995年,由Brendan Eich在Netscape上创建。最初被称为摩卡(Mocha),重命名为JavaScript以利用Java的受欢迎程度,尽管两种语言完全不同。 JavaScript被设计为一种轻巧,解释的语言,可以在Web浏览器中运行,使其成为动态Web内容的关键工具。

第一个JavaScript引擎是用各种语言编写的简单口译员,包括随着时间的流逝,随着对更好性能的需求的增长,引擎演变为“ Just-time(JIT)编译器”,由于其性能和系统级别的功能,它们通常用C编写。这种演变标志着JavaScript的执行模型的重大转变,从纯解释到结合解释和编译的混合模型。

Google于2008年推出的V8引擎改变了游戏规则。 V8在执行之前将JavaScript直接编译为本机机器代码,从而极大地提高了性能。用C编写的V8的架构展示了C的效率如何利用以提高JavaScript的执行速度。出于类似原因,其他著名的引擎(如Spidermonkey(Mozilla)和JavaScriptCore(Apple)也使用C。

这是JavaScript如何通过V8引擎与C相互作用的一个简单示例:

 // JavaScript代码
功能问候(名称){
    返回`您好,$ {name}!`;
}

console.log(ettry(“ world”));

该JavaScript代码在V8引擎上运行时,将通过V8的C -Written组件转换为本机机器代码。引擎的内部设备,例如解析器,优化器和垃圾收集器,都在c中实现。

有人可能会问,为什么不将C用于这些引擎? C提供面向对象的编程功能,模板和丰富的标准库,这对于构建像JavaScript引擎(例如JavaScript引擎)至关重要。 C比C更复杂,它提供了对现代JavaScript引擎至关重要的更好的抽象和性能优化。

但是,对发动机C的依赖并不意味着JavaScript本身是“构建在” c上的。 JavaScript仍然是一种高级,解释的语言,其语法和语义与c无关。该发动机仅提供JavaScript有效运行的环境。

在考虑这种体系结构的优势和潜在陷阱时,会想到几点:

  • 性能:用于发动机的C使用C可以进行重大的性能改进,这对于现代Web应用程序至关重要。但是,这也意味着C代码中的任何错误或效率低下都可能影响JavaScript的性能。

  • 复杂性:C的复杂性可以导致发动机的开发和维护更具挑战性。从事JavaScript引擎的开发人员必须精通JavaScript和C,这可能是陡峭的学习曲线。

  • 安全性:由于JavaScript引擎是用C编写的,因此可以利用C代码中的任何安全漏洞,从而影响JavaScript应用程序的安全性。

  • 可移植性:虽然JavaScript本身是高度便携式的,但需要针对不同平台编辑用C的发动机,这可以在不同环境中引入行为上的不一致性。

以我的经验,使用JavaScript并了解其基本引擎一直在启发。我亲眼目睹了V8引擎中的优化如何在Node.js应用程序中导致显着的性能提高。但是,当调试引起引擎C内部的问题时,我也遇到了挑战,这可能令人生畏。

总结一下,JavaScript的核心不是在C或C上构建的;这是一种解释的语言,它依赖于通常用C的引擎来有效执行。 JavaScript和C之间的这种关系证明了将高级语言与低级优化相结合以创建稳健和性能系统的力量。当您进一步探索JavaScript时,了解这种动态可以加深您对语言及其生态系统的欣赏。

以上是JavaScript的核心:它是在C还是C上构建的?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
JavaScript的核心:它是在C还是C上构建的?JavaScript的核心:它是在C还是C上构建的?May 05, 2025 am 12:07 AM

javascriptisnotbuiltoncorc; saninterpretedlanguagethatrunsonenginesoftenwritteninc.1)javascriptwasdesignedAsalightweight,解释edganguageforwebbrowsers.2)Enginesevolvedfromsimpleterterterpretpreterterterpretertestojitcompilerers,典型地提示。

JavaScript应用程序:从前端到后端JavaScript应用程序:从前端到后端May 04, 2025 am 12:12 AM

JavaScript可用于前端和后端开发。前端通过DOM操作增强用户体验,后端通过Node.js处理服务器任务。1.前端示例:改变网页文本内容。2.后端示例:创建Node.js服务器。

Python vs. JavaScript:您应该学到哪种语言?Python vs. JavaScript:您应该学到哪种语言?May 03, 2025 am 12:10 AM

选择Python还是JavaScript应基于职业发展、学习曲线和生态系统:1)职业发展:Python适合数据科学和后端开发,JavaScript适合前端和全栈开发。2)学习曲线:Python语法简洁,适合初学者;JavaScript语法灵活。3)生态系统:Python有丰富的科学计算库,JavaScript有强大的前端框架。

JavaScript框架:为现代网络开发提供动力JavaScript框架:为现代网络开发提供动力May 02, 2025 am 12:04 AM

JavaScript框架的强大之处在于简化开发、提升用户体验和应用性能。选择框架时应考虑:1.项目规模和复杂度,2.团队经验,3.生态系统和社区支持。

JavaScript,C和浏览器之间的关系JavaScript,C和浏览器之间的关系May 01, 2025 am 12:06 AM

引言我知道你可能会觉得奇怪,JavaScript、C 和浏览器之间到底有什么关系?它们之间看似毫无关联,但实际上,它们在现代网络开发中扮演着非常重要的角色。今天我们就来深入探讨一下这三者之间的紧密联系。通过这篇文章,你将了解到JavaScript如何在浏览器中运行,C 在浏览器引擎中的作用,以及它们如何共同推动网页的渲染和交互。JavaScript与浏览器的关系我们都知道,JavaScript是前端开发的核心语言,它直接在浏览器中运行,让网页变得生动有趣。你是否曾经想过,为什么JavaScr

node.js流带打字稿node.js流带打字稿Apr 30, 2025 am 08:22 AM

Node.js擅长于高效I/O,这在很大程度上要归功于流。 流媒体汇总处理数据,避免内存过载 - 大型文件,网络任务和实时应用程序的理想。将流与打字稿的类型安全结合起来创建POWE

Python vs. JavaScript:性能和效率注意事项Python vs. JavaScript:性能和效率注意事项Apr 30, 2025 am 12:08 AM

Python和JavaScript在性能和效率方面的差异主要体现在:1)Python作为解释型语言,运行速度较慢,但开发效率高,适合快速原型开发;2)JavaScript在浏览器中受限于单线程,但在Node.js中可利用多线程和异步I/O提升性能,两者在实际项目中各有优势。

JavaScript的起源:探索其实施语言JavaScript的起源:探索其实施语言Apr 29, 2025 am 12:51 AM

JavaScript起源于1995年,由布兰登·艾克创造,实现语言为C语言。1.C语言为JavaScript提供了高性能和系统级编程能力。2.JavaScript的内存管理和性能优化依赖于C语言。3.C语言的跨平台特性帮助JavaScript在不同操作系统上高效运行。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境