由於 JavaScript 在網路上無所不在以及其他因素,導致它變得難以避免。不過,這並不表示它很受歡迎。透過這本書,我希望說服你,雖然在使用 JavaScript 時,你必須接受相當多的怪癖,但 JavaScript 是一種不錯的語言,能讓你非常有生產力,而且編寫程式時會很有趣。
儘管我從 JavaScript 誕生以來就開始追蹤它的發展,但我花了很多時間才開始熱衷於它。不過,當我終於開始熱衷於它時,結果發現我之前的經驗已經讓我做好了充分的準備,因為我曾使用過 Scheme、Java(包括 GWT)、Python、Perl 和 Self(這些語言都影響了 JavaScript)。
2010 年,我認識了 Node.js,這讓我燃起希望,認為我最終可以在伺服器和用戶端上使用 JavaScript。因此,我將 JavaScript 轉換為我的主要程式語言。在學習它的過程中,我開始寫一本書來記錄我的發現。這本書就是你目前正在閱讀的這本書。在我的部落格中,我發布了本書的部分內容和其他關於 JavaScript 的資料。這對我來說有幾個好處:正面的反應鼓勵我繼續前進,並讓寫這本書的過程不那麼孤單;部落格文章的留言提供了額外的資訊和提示(如本書各處所承認的);它讓大家認識我的作品,最終促使 O'Reilly 出版了這本書。
因此,這本書的製作花了三年多的時間。它從這個漫長的孕育期中獲益,在這段期間,我不斷地修改其內容。我很高興這本書終於完成了,並希望大家會覺得它對學習 JavaScript 有幫助。O'Reilly 已同意讓大家免費線上閱讀這本書,這應該有助於讓廣大的讀者接觸到這本書。
這本書適合你嗎?以下幾點可以幫助你判斷
這本書是由一位程式設計師寫給程式設計師的。因此,為了理解這本書,你應該已經具備物件導向程式設計的知識,例如透過主流程式語言,例如 Java、PHP、C++、Python、Ruby、Objective-C、C# 或 Perl。
因此,本書的目標讀者是希望快速且正確地學習 JavaScript 的程式設計師,以及希望加強技能和/或查詢特定主題的 JavaScript 程式設計師。
本書分為四個部分,但主要有兩個部分
這些部分完全獨立!你可以將它們視為獨立的書:前者比較像指南,後者比較像參考手冊。 本書的四個部分 會告訴你更多關於本書結構的資訊。
學習 JavaScript 最重要的提示是 不要被細節困住。沒錯,這門語言有很多細節,而本書涵蓋了大部分的細節。但是,還有一個相對簡單且優雅的「大局」,我會向你指出。
本書分為四個部分
在閱讀本書時,你可能想要準備好一個命令列。這能讓你互動式地試用程式碼。最受歡迎的選擇是:
node
來啟動它。 本書中使用下列符號慣例。
問號 (?) 用於標記選用參數。例如
parseInt
(
str
,
radix
?
)
法文引號(guillemets)表示元碼。您可以將此類元碼視為空白,由實際程式碼填入。例如
try
{
«
try_statements
»
}
「白色」方括號標記選用的語法元素。例如
break
⟦«
label
»⟧
在 JavaScript 註解中,我有時會使用反引號來區分 JavaScript 和英文
foo
(
x
,
y
);
// calling function `foo` with parameters `x` and `y`
我透過其完整路徑參照內建方法
«
Constructor
»
.
prototype
.
«
methodName
»
()
例如,Array.prototype.join()
參照陣列方法 join()
;也就是說,JavaScript 將 Array
執行個體的方法儲存在物件 Array.prototype
中。原因在 第 3 層:建構函式—執行個體的工廠 中說明。
每當我介紹新概念時,我通常會透過 JavaScript 命令列中的互動來說明。如下 所示:
> 3 + 4 7
大於符號之後的文字是人類輸入的輸入。其他所有內容都是 JavaScript 引擎輸出的。此外,我使用 console.log()
方法將資料印出至主控台,特別是在(非命令列)原始碼中
var
x
=
3
;
x
++
;
console
.
log
(
x
);
// 4
此元素表示提示或建議。
此元素表示一般注意事項。
此元素表示警告或注意事項。
雖然您顯然可以使用本書作為參考,但有時在網路上查詢資訊會更快。我推薦的資源之一是 Mozilla Developer Network (MDN)。您可以在網路上搜尋以在 MDN 中找到文件。例如,下列網路搜尋會找到陣列 push()
方法的文件:
mdn array push
Safari Books Online 是一個隨選數位圖書館,提供技術和商業領域全球領先作者的專業 內容,形式包括書籍和影片。
技術專業人士、軟體開發人員、網頁設計師,以及商務和創意專業人士將 Safari Books Online 作為他們的首要資源,用於研究、問題解決、學習和認證培訓。
Safari Books Online 提供一系列的 方案和定價,適用於 企業、政府、教育和個人。
會員可以從 O’Reilly Media、Prentice Hall Professional、Addison-Wesley Professional、Microsoft Press、Sams、Que、Peachpit Press、Focal Press、Cisco Press、John Wiley & Sons、Syngress、Morgan Kaufmann、IBM Redbooks、Packt、Adobe Press、FT Press、Apress、Manning、New Riders、McGraw-Hill、Jones & Bartlett、Course Technology 等出版社,在一個完全可搜尋的資料庫中存取數千本書籍、訓練影片和出版前手稿,以及數百 更多。如需有關 Safari Books Online 的更多資訊,請 線上造訪我們。
請將有關本書的意見和問題寄給出版社
O’Reilly Media, Inc. |
1005 Gravenstein Highway North |
Sebastopol, CA 95472 |
800-998-9938(美國或加拿大) |
707-829-0515(國際或當地) |
707-829-0104(傳真) |
我們有一個此書的網頁,在其中列出勘誤表、範例和任何其他資訊。您可以透過 http://oreil.ly/speaking-js 存取此網頁。
如要針對本書發表意見或詢問技術問題,請寄電子郵件至 bookquestions@oreilly.com。
如需有關我們的書籍、課程、研討會和新聞的更多資訊,請瀏覽我們的網站 http://www.oreilly.com。
在 Facebook 上找到我們:http://facebook.com/oreilly
在 Twitter 上追蹤我們:http://twitter.com/oreillymedia
在 YouTube 上觀看我們:http://www.youtube.com/oreillymedia
我要感謝以下這些人,他們都協助讓這本書成真。
以下人員奠定我對 JavaScript 的理解(按時間順序)
更多來源在章節中致謝。
非常感謝審閱這本書的以下人員。他們提供了重要的回饋和更正。按字母順序排列