這可能會在面試中被問到,也可能不會被問到,但相信我,一旦你讀完這篇文章,你就會更好地理解JS術語。 (面試時使用這個布朗尼積分)。
這是前端面試問題系列的第 3 個問題。如果您希望提高準備程度或保持最新狀態,請考慮加入前端訓練營的候補名單。
JavaScript 是一種單執行緒、動態類型、解釋性程式語言,支援多種範式,包括物件導向、函數式和命令式風格。它具有基於原型的物件導向和事件驅動的架構。
這是 JavaScript 的書呆子定義。但每個術語的意思是什麼?讓我們來看看。
JavaScript 是一種單執行緒語言,這表示它只有一個主執行緒。這也意味著它有一個呼叫堆疊。當進行函數呼叫時,它將添加到呼叫堆疊的頂部。一旦執行完成,它就會從堆疊中彈出,並且控制權將移至呼叫堆疊中的下一個函數。依序執行任務是 JavaScript 本質的基礎,但它確實提供了執行非同步操作的 API(例如 fetch 和 setTimeout )。
在 JavaScript 中,變數不是用型別明確宣告的。類型與值相關聯,而不是與運行時推斷的變數相關聯。類型也可以在程式的生命週期中發生變化。此功能使 JS 變得靈活,但它可能容易出現與類型相關的錯誤。像 TypeScript 這樣的工具有助於在開發過程中新增靜態類型,但它最終會編譯為 JS。
與 Java 等編譯語言不同,JavaScript 在執行前不會編譯成機器碼。相反,程式碼在運行時被逐行讀取、解釋和執行。然而,為了提高效能,現代 JavaScript 引擎使用即時 (JIT) 編譯,即時編譯程式碼區塊。這種方法提高了執行速度。
這種程式設計範式將程式碼組織成對象,物件是類別或原型的實例。 ES6 中引入了 class 關鍵字作為語法糖。在底層,JavaScript 中的類別仍然使用原型。這種 OOP 的實作對於 JavaScript 來說是獨一無二的。
它是一種程式設計範例,透過強調函數的使用來促進編寫聲明性程式碼。一些關鍵概念是:
JavaScript 支援這些函數式程式設計概念以及其他範例,讓開發人員在適當的情況下使用函數式技術。
命令式程式設計是一種範例,其中程式碼明確描述了程式為達到所需狀態而必須執行的步驟序列。 JavaScript 完全支援編寫命令式程式碼所需的所有必要結構,例如變數、迴圈、條件和運算子。這種方法可以精確控製程式的執行流程。它通常用於實現演算法和管理複雜的狀態變化。
JavaScript 使用基於原型的物件模型,這是物件導向程式設計的一種形式,其中物件是主要實體。與基於類別的語言不同,JavaScript 使用原型來實作繼承並在物件之間共用屬性和方法。
JavaScript 中基於原型的方向的關鍵面向包括:
物件建立:可以直接建立對象,無需先定義類別。
原型鏈:每個物件都有一個到另一個物件的鏈接,稱為其原型。如果在物件上找不到屬性或方法,JavaScript 會在原型中尋找它,然後在原型的原型中查找,依此類推。
繼承:物件可以透過原型鏈從其他物件繼承屬性和方法。
這個基於原型的系統允許強大且靈活的物件導向程式設計。
JavaScript 基於事件的架構是一種程式設計方法,其中程式的流程由使用者操作、感測器輸出或來自其他程式的訊息等事件決定。這是 JavaScript 如何與 Web 瀏覽器互動並處理非同步操作的基礎。
JavaScript 基於事件的架構的關鍵面向包括:
事件監聽器:「監聽」特定事件並在這些事件發生時執行的函數。
事件循環:檢查事件並將其分派給偵聽器的連續程序。
非同步程式設計:允許程式碼運行而不阻塞主線程,這對於響應式 Web 應用程式至關重要。
這種架構使 JavaScript 能夠有效地處理使用者互動、API 呼叫、計時器和其他非同步操作,使其非常適合建立互動式 Web 應用程式。
所有這些概念的結合使 JavaScript 成為一種多功能語言,可以在 Web、行動、伺服器和 AR 等各種平台上使用。
在面試中,請記住這個定義:
JavaScript 是一種單執行緒、動態類型和解釋編譯的語言。它是一種跨平台語言,但主要用於網路上,為頁面添加互動性。
前端營地
Javascript 是單線程語言是什麼意思
解釋型程式語言與編譯型程式語言
以上是什麼是 JavaScript?一種定義涵蓋一切。的詳細內容。更多資訊請關注PHP中文網其他相關文章!