JavaScript 教程學習筆記1-導論、歷史

1.什麼是 JavaScript 語言?

JavaScript 是一種輕量級的腳本語言。所謂“腳本語言”(script language),指的是它不具備開發操作系統的能力,而是隻用來編寫控制其他大型應用程序(比如瀏覽器)的“腳本”。

JavaScript 也是一種嵌入式(embedded)語言。它本身提供的核心語法不算很多,只能用來做一些數學和邏輯運算。JavaScript 本身不提供任何與 I/O(輸入/輸出)相關的 API,都要靠宿主環境(host)提供,所以 JavaScript 只合適嵌入更大型的應用程序環境,去調用宿主環境提供的底層 API。

目前,已經嵌入 JavaScript 的宿主環境有多種,最常見的環境就是瀏覽器,另外還有服務器環境,也就是 Node 項目。

從語法角度看,JavaScript 語言是一種“對象模型”語言。各種宿主環境通過這個模型,描述自己的功能和操作接口,從而通過 JavaScript 控制這些功能。但是,JavaScript 並不是純粹的“面嚮對象語言”,還支持其他編程範式(比如函數式編程)。這導致幾乎任何一個問題,JavaScript 都有多種解決方法。

JavaScript 的核心語法部分相當精簡,只包括兩個部分:基本的語法構造(比如操作符、控制結構、語句)和標準庫(就是一系列具有各種功能的對象比如Array、Date、Math等)。除此之外,各種宿主環境提供額外的 API(即只能在該環境使用的接口),以便 JavaScript 調用。以瀏覽器爲例,它提供的額外 API 可以分成三大類。

  • 瀏覽器控制類:操作瀏覽器
  • DOM 類:操作網頁的各種元素
  • Web 類:實現互聯網的各種功能
    如果宿主環境是服務器,則會提供各種操作系統的 API,比如文件操作 API、網絡通信 API等等。這些你都可以在 Node 環境中找到。

2.爲什麼學習 JavaScript?

  1. 操控瀏覽器的能力
  2. 廣泛的使用領域
    (1)瀏覽器的平臺化(HTML5 的出現使得JavaScript 調用許多系統功能,比如操作本地文件、操作圖片、調用攝像頭和麥克風)
    (2)Node(Raspberry Pi)
    (3)數據庫操作(NoSQL, PostgreSQL)
    (4)移動平臺開發(PhoneGap, React Native, Flutter)
    (5)內嵌腳本語言(Adobe 公司的著名 PDF 閱讀器 Acrobat、Linux 桌面環境 GNOME 3)
    (6)跨平臺的桌面應用程序(Mozilla 的 Open Web Apps 項目、Google 的 Chrome App 項目、GitHub 的 Electron 項目、以及 TideSDK 項目)

3.試驗環境

推薦安裝 Chrome 瀏覽器,它的“開發者工具”(Developer Tools)裏面的“控制檯”(console),就是運行 JavaScript 代碼的理想環境。

進入 Chrome 瀏覽器的“控制檯”,有兩種方法。

  • 直接進入:按下Option + Command + J(Mac)或者Ctrl + Shift + J(Windows / Linux)

  • 開發者工具進入:開發者工具的快捷鍵是 F12,或者Option + Command + I(Mac)以及Ctrl + Shift + I(Windows / Linux),然後選擇 Console 面板
    進入控制檯以後,就可以在提示符後輸入代碼,然後按Enter鍵,代碼就會執行。如果按Shift + Enter鍵,就是代碼換行,不會觸發執行。

    function greetMe(yourName) {
      console.log('Hello ' + yourName);
    }
    greetMe('Kelly')
    // Hello World
    

HelloKelly

4.JavaScript 與 Java 的關係

這裏專門說一下 JavaScript 和 Java 的關係。它們是兩種不一樣的語言,但是彼此存在聯繫。

JavaScript 的基本語法和對象體系,是模仿 Java 而設計的。但是,JavaScript 沒有采用 Java 的靜態類型。正是因爲 JavaScript 與 Java 有很大的相似性,所以這門語言才從一開始的 LiveScript 改名爲 JavaScript。基本上,JavaScript 這個名字的原意是“很像Java的腳本語言”

JavaScript 語言的函數是一種獨立的數據類型,以及採用基於原型對象(prototype)的繼承鏈。這是它與 Java 語法最大的兩點區別。另外,Java 語言需要編譯,而 JavaScript 語言則是運行時由解釋器直接執行。

總之,JavaScript 的原始設計目標是一種小型的、簡單的動態語言,與 Java 有足夠的相似性,使得使用者(尤其是 Java 程序員)可以快速上手。

5.JavaScript 與 ECMAScript 的關係

1996年11月,Netscape 公司決定將 JavaScript 提交給國際標準化組織 ECMA(European Computer Manufacturers Association),希望 JavaScript 能夠成爲國際標準。

1997年7月,ECMA 組織發佈262號標準文件(ECMA-262)的第一版,規定了瀏覽器腳本語言的標準,並將這種語言稱爲 ECMAScript。這個版本就是 ECMAScript 1.0 版。之所以不叫 JavaScript,一方面是由於商標的關係,Java 是 Sun 公司的商標,根據一份授權協議,只有 Netscape 公司可以合法地使用 JavaScript 這個名字,且 JavaScript 已經被 Netscape 公司註冊爲商標,另一方面也是想體現這門語言的制定者是 ECMA,不是 Netscape,這樣有利於保證這門語言的開放性和中立性。因此,ECMAScript 和 JavaScript 的關係是,前者是後者的規格,後者是前者的一種實現。在日常場合,這兩個詞是可以互換的。

ECMAScript 只用來標準化 JavaScript 這種語言的基本語法結構,與部署環境相關的標準都由其他標準規定,比如 DOM 的標準就是由 W3C組織(World Wide Web Consortium)制定的。

2015年6月,ECMAScript 6 正式發佈,並且更名爲“ECMAScript 2015”。

本文爲阮一峯老師的《JavaScript 教程》學習筆記,多數文字和示例來源於此書

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章