JavaScript 是全球最受歡迎的程式語言之一,現在也廣泛應用於瀏覽器以外的領域。近年來,Node.js 的崛起使得後端開發不再只局限於 Java、Ruby、Python、PHP 等傳統的服務器端語言。現在就一起來了解 JavaScript 吧!
介紹
JavaScript 是全球最受歡迎的程式語言之一。
它於 1995 年創建,從其不起眼的開始發展了很長的路程。
作為唯一直接由瀏覽器本地支持的腳本語言,JavaScript 就一直廣泛使用下去。
在開始時,它並不像現在這樣功能強大,主要用於瀏覽器的動畫效果和當時被稱為 DHTML 的奇技淫巧。
隨著 Web 平台需求的不斷增長,JavaScript 不得不隨之發展,以滿足全球最廣泛使用的生態系統的需求。
平台引入了許多功能,瀏覽器 API 也有所增加,而程式語言本身也有了很大的發展。
如今,JavaScript 也廣泛應用於瀏覽器以外的領域。近年來,Node.js 的崛起使得後端開發也得以解鎖,不再只局限於 Java、Ruby、Python、PHP等傳統的服務器端語言。
現在 JavaScript 同時也是許多數據庫和其他應用程式的開發語言,甚至可以開發嵌入式應用程式、移動應用程式、電視應用程式等等。從最初只是瀏覽器中的一門小語言,JavaScript 現在成為了世界上最受歡迎的語言。
JavaScript 的基本定義
JavaScript 是一種具有以下特點的程式語言:
- 高級語言:它提供抽象層,讓你無需關心程式在運行時的細節。JavaScript 使用垃圾回收機制自動管理記憶體,讓你能夠專注於程式碼本身,而不是管理記憶體位置。它還提供了很多功能,可以處理強大的變數和物件。
- 動態語言:與靜態程式語言相對,動態語言在運行時執行許多靜態語言編譯時執行的操作。這帶來了一些優點和缺點,也為我們提供了一些強大的功能,比如動態類型、遲綁定、反射、函數式編程、對象的運行時修改、閉包等等。
- 動態類型:變數不強制要求指定類型。你可以重新將任何類型賦值給一個變數,例如將整數賦值給一個保存字符串的變數。
- 弱類型:與強類型相對,弱(或鬆散)類型的語言不強制物件類型,這樣更加靈活,但也失去了型別安全和型別檢查的優勢(這正是 TypeScript 和 Flow 試圖改進的地方)。
- 解釋型語言:它通常被稱為解釋型語言,這意味著在程式運行之前不需要編譯步驟,與 C、Java 或 Go 等語言相對。實際上,瀏覽器在執行 JavaScript 之前會對其進行編譯,以提高性能,但這對你來說是透明的,不需要額外的步驟。
- 多範式:語言不強制使用特定的編程範式,不像 Java 強制使用物件導向編程,或者 C 強制使用命令式編程。你可以用面向對象的模式編寫 JavaScript,使用原型和 ES6 引入的類語法。你可以使用函數式編程風格來編寫 JavaScript,利用其一級函數的特性,甚至可以使用命令式的編程風格(類似於 C)。
如果你在想,JavaScript 與 Java 沒有任何關聯,這只是個名字選擇上的失誤,但我們不得不接受這個事實。
JavaScript 的版本
我在這裡介紹一下 ECMAScript 這個術語。我們有一份完整的指南專門介紹 ECMAScript,你可以更深入地了解。簡單來說,你只需要知道 ECMAScript(也稱為 ES)是 JavaScript 標準的名稱。
JavaScript 是該標準的一種實現。這就是為什麼你會聽到 ES6、ES2015、ES2016、ES2017、ES2018 等等的名詞。
很長一段時間,所有瀏覽器運行的 JavaScript 版本都是 ECMAScript 3。ES4 版本由於功能堆疊過多而取消了,而 ES5 是 JavaScript 的一個重大版本。
ES2015,也稱為 ES6,同樣是一個重大的版本。
從那時起,負責人決定每年發布一個版本,以避免版本之間時間過長,並獲得更快的反饋迴圈。
目前,最新批準的 JavaScript 版本是 ES2017。