## 5.概覽
> 原文: [http://exploringjs.com/impatient-js/ch_big-picture.html](http://exploringjs.com/impatient-js/ch_big-picture.html)
>
> 貢獻者:[kj415j45](https://github.com/kj415j45)
在本章中,我想描繪一下大局:您將在本書中學到什么?它如何適應 Web 開發的整體環境?
### 5.1 您將在本書中學到什么?
本書講授 JavaScript 語言。它只關注語言,但偶爾會看一看兩個可以使用 JavaScript 的平臺:
* 網頁瀏覽器
* Node.js
Node.js 在三個方面對 Web 開發很重要:
* 通過它您可以用 JavaScript 編寫服務器端軟件。
* 您還可以使用它為命令行編寫軟件(想想 Unix shell、Windows PowerShell 等)。許多與 JavaScript 相關的工具都基于 Node.js(并通過其執行)。
* Node 的軟件注冊處 npm 已成為安裝工具(如編譯器和構建工具)和庫的主要方式 - 甚至用于客戶端開發。
### 5.2 瀏覽器和 Node.js 的結構

圖 2:兩個 JavaScript 平臺,*Web 瀏覽器* 和 *Node.js* 的結構。API“標準庫”和“平臺 API”都托管在基礎層之上,它具有 JavaScript 引擎和特定于平臺的“核心”。
兩個 JavaScript 平臺 _Web 瀏覽器_ 和 _Node.js_ 的結構相似(圖 [2](#fig:javascript-platforms) ):
* 基礎層由 JavaScript 引擎和特定于平臺的“核心”功能組成。
* 在此基礎之上托管了兩個 API:
* JavaScript 標準庫是 JavaScript 的一部分,在引擎之上運行。
* 平臺 API 也可以從 JavaScript 獲得 - 它提供對特定于平臺的功能的訪問。例如:
* 在瀏覽器中,如果要執行與用戶界面相關的任何操作,則需要使用特定于平臺的 API 比如:響應鼠標點擊、播放聲音等。
* 在 Node.js 中,特定于平臺的 API 允許您讀取和寫入文件,通過 HTTP 下載數據等。
### 5.3 試用 JavaScript 代碼
您有很多選項可以快速運行 JavaScript。以下小節介紹了其中的一些內容。
#### 5.3.1 瀏覽器控制臺
Web 瀏覽器具有所謂的 _控制臺_ :交互式命令行,您可以通過`console.log()`打印文本,并在其中運行代碼段。如何打開控制臺因瀏覽器而異。圖 [3](#fig:chrome-console) 顯示了 Google Chrome 的控制臺。
要了解如何在 Web 瀏覽器中打開控制臺,您可以搜索“?瀏覽器名稱? 控制臺”。這些是一些常用 Web 瀏覽器的頁面:
* [Apple Safari](https://developer.apple.com/safari/tools/)
* [谷歌瀏覽器](https://developers.google.com/web/tools/chrome-devtools/console/)
* [Microsoft Edge](https://docs.microsoft.com/zh-cn/microsoft-edge/devtools-guide/console)
* [Mozilla Firefox](https://developer.mozilla.org/zh-TW/docs/Tools/Web_Console/Opening_the_Web_Console)

圖 3:使用“Google Chrome”訪問網頁時打開控制臺(在窗口的下半部分)。
#### 5.3.2 Node.js REPL
_REPL_ 代表 _讀取(Read) - 執行(Eval) - 打印(Print) - 循環(Loop)_ ,基本上是指 _命令行_ 。要使用它,必須首先通過命令`node`從操作系統命令行啟動 Node.js。然后與它的交互看起來如圖 4 所示。圖 [4](#fig:nodejs-repl) :`>`之后的文本是從用戶輸入的;其他一切都是從 Node.js 輸出的。

圖 4:開始使用 Node.js REPL(交互式命令行)。
 **閱讀:REPL 互動**
我偶爾通過 REPL 交互演示 JavaScript。然后我還使用大于號(`>`)來標記輸入。例如:
#### 5.3.3 其他選擇
其他選擇包括:
* 可讓您在網絡瀏覽器中體驗 JavaScript 的眾多網絡應用。例如,[Babel 的 REPL](https://babeljs.io/repl)。
* 還有用于運行 JavaScript 的本機應用程序和 IDE 插件。
### 5.4 JavaScript 資源
當您對 JavaScript 有疑問時,網絡搜索通常會有所幫助。我可以推薦以下在線資源:
* [MDN 網絡文檔](https://developer.mozilla.org/en-US/):涵蓋各種網絡技術,如 CSS,HTML,JavaScript 等。一個很好的參考。
* [探索 JS](http://exploringjs.com) :包含我的 JavaScript 書籍。
* [Node.js Docs](https://nodejs.org/en/docs/) :記錄 Node.js API。
### 5.5 進一步閱讀
* 本書末尾的[“后續步驟”](ch_remaining-chapters-preview.html)一章,更全面地介紹了 Web 開發。
- I.背景
- 1.關于本書(ES2019 版)
- 2.常見問題:本書
- 3. JavaScript 的歷史和演變
- 4.常見問題:JavaScript
- II.第一步
- 5.概覽
- 6.語法
- 7.在控制臺上打印信息(console.*)
- 8.斷言 API
- 9.測驗和練習入門
- III.變量和值
- 10.變量和賦值
- 11.值
- 12.運算符
- IV.原始值
- 13.非值undefined和null
- 14.布爾值
- 15.數字
- 16. Math
- 17. Unicode - 簡要介紹(高級)
- 18.字符串
- 19.使用模板字面值和標記模板
- 20.符號
- V.控制流和數據流
- 21.控制流語句
- 22.異常處理
- 23.可調用值
- VI.模塊化
- 24.模塊
- 25.單個對象
- 26.原型鏈和類
- 七.集合
- 27.同步迭代
- 28.數組(Array)
- 29.類型化數組:處理二進制數據(高級)
- 30.映射(Map)
- 31. WeakMaps(WeakMap)
- 32.集(Set)
- 33. WeakSets(WeakSet)
- 34.解構
- 35.同步生成器(高級)
- 八.異步
- 36. JavaScript 中的異步編程
- 37.異步編程的 Promise
- 38.異步函數
- IX.更多標準庫
- 39.正則表達式(RegExp)
- 40.日期(Date)
- 41.創建和解析 JSON(JSON)
- 42.其余章節在哪里?