DEV Community

Kueiapp
Kueiapp

Posted on

JavaScript - 的先鋒者們Netscape Nodejs

Ref: http://blog.kueiapp.com/programming-tw/javascript-的先鋒者們-netscape-nodejs/

JavaScript 1.0

Image description

JavaScript 1.0 是由 Netscape 公司的 Brendan Eich 在 1995 年時為著名的瀏覽器 Netscape 所發明的。Java 是那個時代非常流行的語言,所以 Netscape 當時也想像它一樣酷因此將它命名為 JavaScript。然而,他們完全沒有關係。

微軟則在 1996 年發表了兩種可以在瀏覽器上執行的語言,VBScript 和 JScript。JScript 其實是 JavaScript 的複製品,用於 Internet Explorer 3。

為了制定 JavaScript 的標準,Netscape 於 1996 年向 ECMA International 提出第一個全球標準化架構,並於 1997 年完成第一個發佈版本 (ES1)。他們稱之為 ECMAScript,也就是 JavaScript 的全球標準。從第一版至今的 2022 年,最流行的版本是 ECMAScript 2015(也稱為 ES6),有最多的瀏覽器支援。

不同版本的 JavaScript 會有不同的語法、功能、函式庫或模組系統。要檢查我們的環境是否可以執行它,caniuse.com 是一個非常好的網頁資訊網站。

ESMAScript(JavaScript)候選名單

  • 5th edition: ES5
  • ES6 — ECMAScript 2015
  • ES7 — ECMAScript 2016
  • ES8 — ECMAScript 2017
  • ES9 — ECMAScript 2018
  • NodeJS

2008 年,Google 發表了 Chrome 瀏覽器,其 JavaScript 的 V8 渲染引擎為網路世界投下了一枚震撼彈。由於 V8 的「開放原始碼」特性讓 NodeJS 團隊修改了這個引擎,讓它可以輕鬆地處理 Web 應用程式並建立伺服器於後端應用。

JavaScript module

由於 NodeJS 的出現,JavaScript 的應用不只限於瀏覽器,伺服器端的服務提供者也可以使用 JavaScript。程式碼風格也不受限於網頁格式,許多 NodeJS 應用程式將模組程式設計的概念也帶進 JavaScript 世界。

有別於函式庫 Library,當談到模組 Module 時,它通常包含一個類別或一組函式,用來達到某個目的。此外,由於 JavaScript 世界是一個自由且開放的平台,因此 JavaScript 中的 Module 有多種樣式。

  • CommonJS
  • UMD — Universal Module Definition
  • AMD
  • Require.js
  • ES6 module

隨著時間的推移,使用 JavaScript Module 時可採用 import 和 require 兩種主流模式。

require

CommonJS 風格,是最早產生模組概念的寫作方式。

// a.js
const module = require('module');
module.hello()
// module.js
function hello(){ console.log('hello') }
module.exports = { hello }
Enter fullscreen mode Exit fullscreen mode

import

在最新的 ES6 標準中,模組可以寫成 import 和 export,似乎看起來更容易理解。

// a.js
import module from "module"
module.hello()
// or
import { hello } from "module|
// module.js
export function hello(){ console.log('hello') }
// or
export { hello }
Enter fullscreen mode Exit fullscreen mode

使用 NodeJS

Image description

NodeJS 是一個獨立的執行環境,安裝後我們就可以使用 node 指令在終端機執行 JavaScript 程式碼而無需瀏覽器。

  • 從 nodejs.org 下載安裝
  • 從套件管理系統安裝,例如 macOS 的 HomeBrew brew install node
node hello.js
// or omit the extension
node hello
Enter fullscreen mode Exit fullscreen mode

Ref: http://blog.kueiapp.com/programming-tw/javascript-的先鋒者們-netscape-nodejs/

Top comments (0)