# 認識 javascript
# 不是 Java
javascript 誕生於 1995 年 5 月,只因商業考量冠上當時具話題性的「Java」。Javascript 與 Java 之間,除了基本語法及一些關鍵字相似外,在風格上或典範上是完全不同的語言。
# ECMA-262
語言規範 ECMA-262 於 1997 年 6 月正式釋出首個版本,也被稱為 ECMAScript。Javascript 在定位上,成為實現 ECMAScript 的語言,只不過開發者多半還是使用 Javascript 這個名稱。
# ECMA-262 第三版 ES3
真正最早普及,也是 Javascript 開發者最熟悉的 ECMAScript 版本是 1999 年 12 月發布的 ECMA-262 第三版,簡稱 ES3。
下個版本的 ES4 被否決了,部分針對 ES3 缺失進行改進的特性,在 2009 年 12 月重新命名為 ES5 。
# ES3 到 ES5
ES5 釐清了 ES3 中許多模糊不清的規範,重大特性之一是增加了嚴格模式,啟用嚴格模式後,若誤用了過去經驗上,被認為不好的 ECMA 特性,將會以直譯或執行錯誤終止程式,其他特性如涉直、取直和數、支援更多物件互動,JSON 的支援也是 ES5 的重要規範之一,某種程度而言,這些特性也是後續 ES6 的基礎。
# ES5 到 ES6
ES6 規範於 2015 年 6 月正式釋出,並希望以後底年份來區分版本,因此,又稱 ESMAScript2015。不過不少開發者仍習慣以 ES6 稱呼這版本,由於 Node.js 及主流瀏覽器積極支援,ES6 的普及率續速飆升,成為 ECMAScript 歷史上的重要版本,甚至被稱為新一代的 Javascript 語言。
# TC39 提案
從 ES6 之後,ESMAScript 採頻繁、每年 6 月釋出新版本的方式,令新版本發布常態化。
ECMA 下中有許多技術委員會與任務群組,其中 TC39 就是負責 ECMAScript 規範的技術委員會,語言的提案處理程序有 0 到 4 階段。
# 為 javascript 準備環境
# javascript 引擎
- V8
Google 開發的開放原始碼,用於 Google Chrome 及 Chromium,也是 Node.js 使用的引擎。 - SpiderMonkey
早期在 Netscape 中使用的 Javascript 引擎,已開放原始碼釋出,目前用於 Firefox 瀏覽器。 - JavaScriptCore
從 KJS 與 PCRE regular expression 程式庫發展出來的,使用於 apple 的 Safari 等,以 Webkit 當作引擎的瀏覽器。 - Chakra
Internet Explorer 使用的引擎,目前正被 IE11 使用。而 Edge 改以 V8 引擎。
# 下載、安裝 Node.js
前往 https://nodejs.org/ 可以看到兩個版本,可以先選擇 TLS 長期支援 (Long Term Support) 版本,也就是官方會長期提供重大臭蟲的修補。
因此,就實際服務的應用程式而言,用 LTS 版本較佳。
安裝完後想確定是否可以執行 node 指令,可以用 Windows 的程式選單中搜尋並執行「命令提示字元」,並輸入 node -v
,即可顯示 node 版本。
C:\Users\user>node -v | |
v14.15.4 |
當使用者於「命令提示字元」(又稱 Console) 中輸入某個指令時,作業系統會看 PATH 環境變數設定的資料夾中。
Node.js 的安裝過程中,會自動設定 PATH 環境變數,因此可以直接執行。