必備知識:
- 對互聯網和萬維網 (WWW) 有基本的認識。
- 熟悉HTML。
## JavaScript 簡介
JavaScript 是一門跨平臺、面向對象的輕量級腳本語言。 在主機環境中, JavaScript 能夠通過連接環境對象而實現可控制編譯。
JavaScript 內置了一個包含一系列對象的標準庫,比如數組、日期、數學和一個語言元素核心集合包括操作符,流程控制符以及語句等。JavaScript 的核心部分可以通過組合已有語言核心對象來擴展語言以適應不同用途,例如:
- 客戶端的 JavaScript 通過提供控制瀏覽器及其文檔對象模型(DOM)的對象來擴展語言核心。例如:客戶端版本直接支持應用將元素放在在HTML表單中并且支持響應用戶事件比如鼠標點擊、表單提交和頁面導航。
- 服務端的 JavaScript 則通過提供有關在服務器上運行 JavaScript 的對象來可擴展語言核心。例如:服務端版本直接支持應用和數據庫通信,提供應用不同調用間的信息連續性,或者在服務器上執行文件操作。
服務端的 JavaScript 通常使用 Node.js 技術。Node.js 是一個基于 Chrome V8 引擎的 JavaScript 運行環境。Node.js 使用了一個事件驅動、非阻塞式 I/O 的模型,使其輕量又高效。Node.js 的包管理器 npm,是全球最大的開源庫生態系統。
## JavaScript 和 Java
JavaScript 和 Java 有一些共性但是在另一些方面有著根本性區別。JavaScript 名稱上酷似 Java,但是并****沒有Java 的靜態類型和強類型檢查特性。****
與 Java 通過聲明式構建類的編譯時系統不同,JavaScript 采用基于少量的數據類型如數字、布爾、字符串值的運行時系統。JavaScript 擁有基于原型的對象模型提供的動態繼承,也就是說,獨立對象的繼承是可以改變的。 ****JavaScript 支持匿名函數,函數也可以作為對象的屬性執行。****
與 Java 相比,Javascript 是一門形式自由的語言。****你不必聲明所有的變量,類和方法。你不必關心方法是否是 共有、私有或者受保護的,也不需要實現接口。無需顯式指定變量、參數、方法返回值的數據類型。****
Java 是基于類的編程語言,設計的初衷就是為了快速執行和類型安全的。類型安全,舉例來說,你不能將一個Java 整數變量轉化為一個對象引用,或者由J ava 字節碼訪問專有存儲器。Java 基于類的模型,意味著程序包含專有的類及其方法。Java 的類繼承和強類型要求緊耦合的對象層級結構。這些要求使得 Java 編程比 JavaScript 要復雜的多。
相比之下,JavaScript 語句精簡、擁有動態類型,為更多開發者提供了一種語法簡單、內置功能強大以及用最小需求創建對象的編程工具。
具體對比如下表:
JavaScript | Java |
---|---|
面向對象。不區分對象類型。通過原型機制繼承,任何對象的屬性和方法均可以被動態添加。 | 基于類系統。分為類和實例,通過類層級的定義實現繼承。不能動態增加對象或類的屬性或方法。 |
變量類型不需要提前聲明(動態類型)。 | 變量類型必須提前聲明(靜態類型)。 |
所有對象均為實例。 | 類和實例是不同的事物。 |
通過構造器函數來定義和創建一組對象。 | 通過類定義來定義類;通過構造器方法來實例化類。 |
通過 new 操作符創建單個對象。 | 相同。 |
指定一個對象作為原型并且與構造函數一起構建對象的層級結構 | 通過類定義來定義現存類的子類,從而構建對象的層級結構。 |
遵循原型鏈繼承屬性。 | 遵循類鏈繼承屬性。 |
構造器函數或原型指定初始的屬性集。允許動態地向單個的對象或者整個對象集中添加或移除屬性。 | 類定義指定類的所有實例的所有屬性。無法在運行時動態添加屬性。 |
## 開發者工具
因為不同瀏覽器解析出的 HTML 、CSS 與 js 有不同,各個瀏覽器的兼容性不一樣,所以在瀏覽器的選擇上,推薦使用 Google 的 ****Chrome 瀏覽器****或者 Mozilla 的 ****FireFox 瀏覽器****。
而 FireFox 內置了兩款非常棒的工具用來實驗 JavaScript:瀏覽器控制臺和代碼草稿紙,但是 Chrome 等瀏覽器只有開發者控制臺(按 F12
可以調出開發者控制臺),并沒有代碼草稿紙,所以在編寫成段 js 代碼的時候就顯得有些麻煩。但是 FireFox 提供了代碼草稿紙,對于初學者而言很方便的去學習 js 。(當然啦,還有很多種方法可以運行 js 的,比如可以使用 NodeJS 的命令行工具去運行編寫好的 js 文件。)
筆者習慣于使用 Chrome,所以以后的開發環境均是基于 Chrome 環境的,FireFox 兼容性與 Chrome 相當,所以使用 FireFox 也可以。但是 Chrome 的官網被墻了,所以下載比較麻煩,可以參考我的另一篇離線下載 Chrome 的教程——下載chrome各版本離線安裝包 | Airing的博客
關于開發者工具的具體使用,請參考:Chrome 開發工具指南 | 極客學院
## Hello World
學習 JavaScript 的第一步,打開瀏覽器的代碼調試器嘗試寫你的第一個 JavaScript 版本的“Hello world”程序。
function greetMe(user) {
return "Hi " + user;
}
greetMe("Airing"); // "Hi Airing"
在 Scratchpad(代碼草稿紙)中選擇要執行的代碼,然后點擊快捷鍵 Ctrl+R
就可以在瀏覽器中看到選中代碼的執行結果。
在接下來的章節里,該指南將介紹 JavaScript 的語法以及語言特性,屆時你將可以使用它編寫更加復雜的程序。
原文:《學習前的準備》(From 《Before Coding》)