国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

首頁 web前端 js教程 JavaScript 運(yùn)行時:JavaScript 運(yùn)行時簡介。

JavaScript 運(yùn)行時:JavaScript 運(yùn)行時簡介。

Jan 06, 2025 am 06:54 AM

JavaScript Runtimes: Introduction to JavaScript Runtimes.

介紹

有沒有想過為什么 JavaScript 這種專門用于操作 UI 元素的語言后來成為使用最廣泛的語言?它不再僅僅用于 UI 操作; JavaScript 現(xiàn)在被廣泛使用,從前端到后端開發(fā),再到機(jī)器學(xué)習(xí)等等。在本系列的課程中,我們將深入研究運(yùn)行時,更具體地說是一些流行的 JavaScript 運(yùn)行時,并探索這些工具如何使 JavaScript 能夠在我們的瀏覽器之外運(yùn)行。

JavaScript:起源和背景故事

20 世紀(jì) 90 年代中期,網(wǎng)絡(luò)還處于起步階段。每天都有越來越多的網(wǎng)站被托管,并且由于個人計算對大眾的可用性不斷增加,網(wǎng)絡(luò)正在以驚人的速度增長。

當(dāng)時,網(wǎng)絡(luò)主要是靜態(tài)的,沒有用戶交互。大多數(shù)人使用 AOL、Yahoo 和 Netscape Navigator 等網(wǎng)絡(luò)瀏覽器來瀏覽網(wǎng)絡(luò)。在這三種瀏覽器中,Netscape 在用戶和創(chuàng)新方面均處于領(lǐng)先地位。 Netscape 團(tuán)隊(duì)意識到,隨著網(wǎng)絡(luò)的發(fā)展,需要雙向交互。

為了滿足這一需求,他們于 1995 年 4 月聘請了 Brendan Eich 來創(chuàng)建一種新語言。擁有Scheme和其他編程語言背景的Eich在1995年5月僅用十天就開發(fā)出了JavaScript的第一個版本,然后為Netscape Navigator創(chuàng)建了JavaScript引擎。這一發(fā)展標(biāo)志著 Web 2.0 的開始。

JavaScript 引擎:為現(xiàn)代 Web 提供動力

JavaScript 引擎只是一個解釋 JavaScript 代碼的計算機(jī)程序。引擎負(fù)責(zé)執(zhí)行代碼。第一個 JavaScript 引擎是由 Brendan Eich 開發(fā)的,它只是一個解釋器?,F(xiàn)代 JavaScript 引擎已經(jīng)有了顯著的發(fā)展,現(xiàn)在使用 JIT(即時)編譯等技術(shù)來實(shí)現(xiàn)更好的性能。在JIT編譯中,整個代碼會立即轉(zhuǎn)換為機(jī)器代碼,然后立即執(zhí)行。

每個 JavaScript 引擎都包含兩個基本組件:調(diào)用堆棧和堆。調(diào)用堆棧是我們的代碼執(zhí)行的地方,堆是內(nèi)存中存儲我們應(yīng)用程序中所需的所有對象的地方。

Google 的 V8 引擎是第一個引入 JIT 編譯的引擎,并且改變了游戲規(guī)則。目前,它是使用最廣泛的引擎,被用于每個基于 Chromium 的 Web 瀏覽器、使用 Electron 框架構(gòu)建的應(yīng)用程序、Node.js 和 Deno 等運(yùn)行時系統(tǒng)以及嵌入 Chromium 的任何其他框架。

除了 V8 之外,還有其他著名的 JavaScript 引擎:

  • SpiderMonkey - 用于 Firefox 及其分支。
  • JavaScriptCore - 用于 Safari 瀏覽器和 Bun 運(yùn)行時系統(tǒng)。

JavaScript 運(yùn)行時:運(yùn)行時到底是什么?

簡而言之,運(yùn)行時是一個允許我們實(shí)時編譯或執(zhí)行代碼的系統(tǒng)。 JavaScript 運(yùn)行時本質(zhì)上是一個包裝器,包括 JavaScript 引擎、回調(diào)隊(duì)列和一組 API,提供執(zhí)行 JavaScript 代碼的環(huán)境。

我們知道 JavaScript 引擎對于執(zhí)行代碼至關(guān)重要,但為了使其有用,我們需要 API。這些 API 使我們的代碼能夠與網(wǎng)頁、網(wǎng)絡(luò)、數(shù)據(jù)庫和文件系統(tǒng)進(jìn)行交互。例如,Web 瀏覽器提供 Web API 來處理瀏覽器事件并與 DOM 交互,而 Node.js 提供用于 I/O 操作的 API。

現(xiàn)在我們已經(jīng)介紹了什么是運(yùn)行時,讓我們來看看兩個最廣泛使用和備受推崇的 JavaScript 運(yùn)行時系統(tǒng),用于在服務(wù)器上運(yùn)行代碼

  • Node.js:

    • Node.js 是一個開源、跨平臺的 JavaScript 運(yùn)行環(huán)境。
    • 它在瀏覽器外部運(yùn)行 V8 JavaScript 引擎,這是 Google Chrome 的核心。這使得 Node.js 具有非常高的性能。
    • Node 在其標(biāo)準(zhǔn)庫中提供了一組異步 I/O 原語,可防止 JavaScript 代碼阻塞。
  • Bun.sh:

    • Bun 是一款專為提高速度而設(shè)計的一體化 JavaScript 運(yùn)行時和工具包,配有捆綁器、測試運(yùn)行器和與 Node.js 兼容的包管理器。
    • 它擴(kuò)展了 JavaScriptCore,這是專為 Safari 構(gòu)建的注重性能的 JS 引擎。這使其成為最快的 JavaScript 運(yùn)行時。
    • Bun 提供了一組最小的高度優(yōu)化的 API,用于執(zhí)行常見任務(wù),例如啟動 HTTP 服務(wù)器和寫入文件。

這就是本集的全部內(nèi)容。在下一集中,我們將深入探討 Node.js 的起源及其用于構(gòu)建強(qiáng)大的服務(wù)器端應(yīng)用程序的核心 API。敬請期待!

以上是JavaScript 運(yùn)行時:JavaScript 運(yùn)行時簡介。的詳細(xì)內(nèi)容。更多信息請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本站聲明
本文內(nèi)容由網(wǎng)友自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請聯(lián)系admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

人工智能驅(qū)動的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

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

Clothoff.io

Clothoff.io

AI脫衣機(jī)

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智能換臉工具輕松在任何視頻中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

功能強(qiáng)大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級代碼編輯軟件(SublimeText3)

Java vs. JavaScript:清除混亂 Java vs. JavaScript:清除混亂 Jun 20, 2025 am 12:27 AM

Java和JavaScript是不同的編程語言,各自適用于不同的應(yīng)用場景。Java用于大型企業(yè)和移動應(yīng)用開發(fā),而JavaScript主要用于網(wǎng)頁開發(fā)。

如何在JS中與日期和時間合作? 如何在JS中與日期和時間合作? Jul 01, 2025 am 01:27 AM

JavaScript中的日期和時間處理需注意以下幾點(diǎn):1.創(chuàng)建Date對象有多種方式,推薦使用ISO格式字符串以保證兼容性;2.獲取和設(shè)置時間信息可用get和set方法,注意月份從0開始;3.手動格式化日期需拼接字符串,也可使用第三方庫;4.處理時區(qū)問題建議使用支持時區(qū)的庫,如Luxon。掌握這些要點(diǎn)能有效避免常見錯誤。

為什么要將標(biāo)簽放在的底部? 為什么要將標(biāo)簽放在的底部? Jul 02, 2025 am 01:22 AM

PlacingtagsatthebottomofablogpostorwebpageservespracticalpurposesforSEO,userexperience,anddesign.1.IthelpswithSEObyallowingsearchenginestoaccesskeyword-relevanttagswithoutclutteringthemaincontent.2.Itimprovesuserexperiencebykeepingthefocusonthearticl

JavaScript與Java:開發(fā)人員的全面比較 JavaScript與Java:開發(fā)人員的全面比較 Jun 20, 2025 am 12:21 AM

JavaScriptIspreferredforredforwebdevelverment,而Javaisbetterforlarge-ScalebackendsystystemsandSandAndRoidApps.1)JavascriptexcelcelsincreatingInteractiveWebexperienceswebexperienceswithitswithitsdynamicnnamicnnamicnnamicnnamicnemicnemicnemicnemicnemicnemicnemicnemicnddommanipulation.2)

什么是在DOM中冒泡和捕獲的事件? 什么是在DOM中冒泡和捕獲的事件? Jul 02, 2025 am 01:19 AM

事件捕獲和冒泡是DOM中事件傳播的兩個階段,捕獲是從頂層向下到目標(biāo)元素,冒泡是從目標(biāo)元素向上傳播到頂層。1.事件捕獲通過addEventListener的useCapture參數(shù)設(shè)為true實(shí)現(xiàn);2.事件冒泡是默認(rèn)行為,useCapture設(shè)為false或省略;3.可使用event.stopPropagation()阻止事件傳播;4.冒泡支持事件委托,提高動態(tài)內(nèi)容處理效率;5.捕獲可用于提前攔截事件,如日志記錄或錯誤處理。了解這兩個階段有助于精確控制JavaScript響應(yīng)用戶操作的時機(jī)和方式。

JavaScript:探索用于高效編碼的數(shù)據(jù)類型 JavaScript:探索用于高效編碼的數(shù)據(jù)類型 Jun 20, 2025 am 12:46 AM

javascripthassevenfundaMentalDatatypes:數(shù)字,弦,布爾值,未定義,null,object和symbol.1)numberSeadUble-eaduble-ecisionFormat,forwidevaluerangesbutbecautious.2)

如何減少JavaScript應(yīng)用程序的有效載荷大??? 如何減少JavaScript應(yīng)用程序的有效載荷大小? Jun 26, 2025 am 12:54 AM

如果JavaScript應(yīng)用加載慢、性能差,問題往往出在payload太大,解決方法包括:1.使用代碼拆分(CodeSplitting),通過React.lazy()或構(gòu)建工具將大bundle拆分為多個小文件,按需加載以減少首次下載量;2.移除未使用的代碼(TreeShaking),利用ES6模塊機(jī)制清除“死代碼”,確保引入的庫支持該特性;3.壓縮和合并資源文件,啟用Gzip/Brotli和Terser壓縮JS,合理合并文件并優(yōu)化靜態(tài)資源;4.替換重型依賴,選用輕量級庫如day.js、fetch

JavaScript模塊上的確定JS綜述:ES模塊與COMPORJS JavaScript模塊上的確定JS綜述:ES模塊與COMPORJS Jul 02, 2025 am 01:28 AM

ES模塊和CommonJS的主要區(qū)別在于加載方式和使用場景。1.CommonJS是同步加載,適用于Node.js服務(wù)器端環(huán)境;2.ES模塊是異步加載,適用于瀏覽器等網(wǎng)絡(luò)環(huán)境;3.語法上,ES模塊使用import/export,且必須位于頂層作用域,而CommonJS使用require/module.exports,可在運(yùn)行時動態(tài)調(diào)用;4.CommonJS廣泛用于舊版Node.js及依賴它的庫如Express,ES模塊則適用于現(xiàn)代前端框架和Node.jsv14 ;5.雖然可混合使用,但容易引發(fā)問題

See all articles