10 天 996 寫出的語言 - JavaScript
在 JavaScript 之前,網頁主要是靜態的,任何交互性都必須在服務器端處理,導致用戶體驗笨拙和緩慢。JavaScript 的發明是由于需要向網頁添加更多動態和交互功能。
1995 年 5 月,Brendan Eich 被指派開發一種新的腳本語言,這種語言將補充 Java 的功能,使Web 瀏覽器能夠實現動態內容和交互性。Eich 在短短 10 天內完成了這種語言的首個版本。這種快速開發是為了滿足網景瀏覽器 2.0 的緊迫發布日程。
這種緊迫開發日程的背后原因是網景與微軟之間的瀏覽器戰爭。網景希望通過快速增強 Web 的交互性來保持對 Internet Explorer 的優勢。這種語言最初被稱為 Mocha,后來更名為 LiveScript,最終在 1995 年 9 月隨網景瀏覽器 2.0 B3 一起發布。到了同年 12 月,它正式更名為 JavaScript。這是網景出于營銷考慮,利用了 Java 的流行度,盡管這兩種語言在設計和目的上有很大的不同。
多年來,JavaScript 已經從一個簡單的腳本語言成長為一種強大的、成熟的編程語言,能夠創建復雜的 Web 應用程序、服務器端應用程序(使用Node.js)、移動應用程序,甚至是游戲。
隨著 JavaScript 的普及增加,對其標準化的需求也隨之增長。這導致了 ECMAScript 標準的創建。標準化使 JavaScript 在不同的Web瀏覽器中更加一致和可靠。
此外,JavaScript 框架和類庫的出現,如 jQuery、Angular、React 和 Vue,極大地簡化了復雜Web應用程序的開發,使 JavaScript 成為 Web 開發人員不可或缺的工具。
下圖列舉了 JavaScript 的最重要特征。
圖片
01 解釋型語言
JavaScript 代碼由瀏覽器或 JavaScript 引擎執行,而不是事先編譯成機器語言。這使得它在不同平臺上具有很高的可移植性。V8 等現代引擎利用即時 (JIT) 技術將代碼編譯成可直接執行的機器代碼。
02 函數是一等公民
在 JavaScript 中,函數被視為一等公民,這意味著它們可以存儲在變量中,可以作為參數傳遞給其他函數,也可以從函數中返回。
03 動態類型
JavaScript 是一種松散類型或動態語言,這意味著我們不必提前聲明變量的類型,而且類型可以在運行時改變。
04 客戶端執行
JavaScript 支持異步編程,允許在后臺運行讀取文件、HTTP 請求或查詢數據庫等操作,并在完成后觸發回調或承諾。這在網絡開發中對提高性能和用戶體驗特別有用。
05 基于原型的 OOP
與基于類的面向對象語言不同,JavaScript 使用原型進行繼承。這意味著對象可以從其他對象繼承屬性和方法。
06 自動垃圾回收
JavaScript 中的垃圾回收是一種自動內存管理。垃圾回收的主要目的是回收程序不再使用的對象所占用的內存,這有助于防止內存泄漏并優化應用程序的性能。
07 與其他語言相比
JavaScript 與 Python 或 Java 等編程語言相比比較特殊,因為它是網絡開發的主要語言。
Python 以提供良好的代碼可讀性和多功能性著稱,Java 以其結構性和健壯性著稱,而 JavaScript 是一種解釋型語言,無需編譯即可直接在瀏覽器上運行,強調靈活性和動態性。
08 與 TypeScript 的關系
TypeScript 是 JavaScript 的超集,這意味著它通過向 JavaScript 語言添加功能(最顯著的是類型注解)來擴展 JavaScript。這種關系允許任何有效的 JavaScript 代碼也被視為有效的 TypeScript 代碼。
09 流行的 JavaScript 框架
React 以其靈活性和大量社區驅動的插件而聞名,而 Vue 則簡潔直觀,具有高度集成和響應性功能。另一方面,Angular 為企業級 JS 開發提供了一套嚴格的開發規范。