前言

2021-09-15 15:11 更新

起因

我想寫(xiě)這本書(shū),主要原因是自己需要。

編程時(shí),往往需要查閱資料,確定準(zhǔn)確用法。理想的JavaScript參考書(shū),應(yīng)該簡(jiǎn)明易懂,一目了然,告訴我有哪些注意點(diǎn),提供代碼范例。涉及重要概念,還應(yīng)該適當(dāng)講解??墒谴蠖鄶?shù)時(shí)候,現(xiàn)實(shí)都不是如此。找到的資料冗長(zhǎng)難懂,抓不住重點(diǎn),有時(shí)還很陳舊,跟不上語(yǔ)言標(biāo)準(zhǔn)和瀏覽器的快速發(fā)展,且大多數(shù)是英文資料。

學(xué)習(xí)過(guò)程中,我做了很多JavaScript筆記。多年累積,數(shù)量相當(dāng)龐大。遇到問(wèn)題,我首先查自己的筆記,如果筆記里沒(méi)有,再到網(wǎng)上查,最后回過(guò)頭把筆記補(bǔ)全。終于有一天,我意識(shí)到可以把筆記做成書(shū),這就是這本教程的由來(lái)。

我是為自己寫(xiě)這本書(shū)的,我想用自己的語(yǔ)言敘述JavaScript,按照自己的方式編排章節(jié),便于將來(lái)的查閱。當(dāng)然,另一個(gè)寫(xiě)作動(dòng)力是覺(jué)得這些內(nèi)容對(duì)他人有用,畢竟我花了那么多時(shí)間,整理成書(shū)可以節(jié)省其他人的時(shí)間。

正因?yàn)槊撎ビ诠P記,這本書(shū)跟其他JavaScript書(shū)籍有所不同。

  • 它有點(diǎn)像教程,包含重要概念的簡(jiǎn)潔講解,努力把復(fù)雜的問(wèn)題講得簡(jiǎn)單,希望一兩分鐘內(nèi)就能抓住重點(diǎn)。

  • 它又有點(diǎn)像參考手冊(cè),羅列主要用法和各種API接口,并給出可以立即運(yùn)行的代碼。所有章節(jié)按主題編排,不完全按照由淺入深的學(xué)習(xí)順序編排,這是為了方便查閱。

  • 它主要關(guān)注編程實(shí)戰(zhàn)遇到的問(wèn)題,從語(yǔ)言本身到瀏覽器接口都涉及,容易出錯(cuò)的一些細(xì)節(jié)尤其講得多。

考慮到這本書(shū)有參考手冊(cè)的性質(zhì),所以書(shū)名加了“參考”(reference)兩個(gè)字。至于書(shū)名中的“標(biāo)準(zhǔn)”,指的是全書(shū)以JavaScript的國(guó)際標(biāo)準(zhǔn)(standard)為依據(jù)。

寫(xiě)作目標(biāo)

本書(shū)主要針對(duì)Web前端開(kāi)發(fā),以ECMAScript 5作為標(biāo)準(zhǔn),目標(biāo)是所講的內(nèi)容在實(shí)際開(kāi)發(fā)之中基本夠用,力求5-10年之內(nèi)不會(huì)過(guò)時(shí)。

全書(shū)的內(nèi)容比較廣泛,只要是實(shí)戰(zhàn)中用得到的東西都有涉及(核心語(yǔ)法、標(biāo)準(zhǔn)庫(kù)、DOM、瀏覽器模型、外部代碼庫(kù)、開(kāi)發(fā)工具等等)。全書(shū)的難度為中級(jí),比較適合對(duì)JavaScript已經(jīng)有所了解、想進(jìn)一步深入學(xué)習(xí)的讀者,英語(yǔ)中稱為“高級(jí)初學(xué)者”(advanced beginner),但是也照顧到入門(mén)者的需要,從最簡(jiǎn)單的開(kāi)始講起,循序漸進(jìn)、由淺入深。另一方面,對(duì)于中級(jí)開(kāi)發(fā)者,這本書(shū)也是有用的,它可以幫你系統(tǒng)地復(fù)習(xí)和鞏固JavaScript語(yǔ)言知識(shí),你會(huì)發(fā)現(xiàn)這門(mén)語(yǔ)言有許多地方是你以前沒(méi)有注意到的。

在寫(xiě)作風(fēng)格上,力求做到清晰易懂,具有可讀性。所有章節(jié)都帶有大量的代碼實(shí)例,這不僅是為了便于理解和模仿,也是為了隨時(shí)可以用到實(shí)際項(xiàng)目中,做到即學(xué)即用。

由于本書(shū)選擇以ECMAScript 5為標(biāo)準(zhǔn),意味著不支持許多老式瀏覽器,其中最主要的就是IE6-8。如果用一句話來(lái)表達(dá),就是本書(shū)不支持IE 8。這樣做雖然會(huì)喪失一些實(shí)用性和兼容性,但是我認(rèn)為,有利于保持行文的流暢和內(nèi)容的清晰,可以使讀者更好地掌握J(rèn)avaScript。而且從歷史角度看,堅(jiān)持書(shū)寫(xiě)符合語(yǔ)言標(biāo)準(zhǔn)的代碼,將在長(zhǎng)期中獲得回報(bào)。如果你的項(xiàng)目需要支持這些老式瀏覽器,你可能需要檢查用到的每一個(gè)語(yǔ)法特性的適用性,找出替代方案。

開(kāi)源許可

本書(shū)采用創(chuàng)意共享“署名—非商業(yè)性使用”許可證(Creative Commons Attribution-NonCommercial license)。所有內(nèi)容不僅可以免費(fèi)閱讀,還可以自由使用(比如轉(zhuǎn)載),只需遵守兩個(gè)條件:

  • 署名:必須保留原作者的署名。

  • 非商業(yè)性使用:除非得到正式許可,否則不得用于商業(yè)目的。

事實(shí)上,你還可以得到這本書(shū)的源碼。它就放在Github上,歡迎克隆和提交Pull Request。

試驗(yàn)環(huán)境

本書(shū)采用Google的V8引擎作為JavaScript的標(biāo)準(zhǔn)實(shí)現(xiàn),所有示例都以V8引擎的運(yùn)行結(jié)果為準(zhǔn)。

閱讀之前,請(qǐng)確認(rèn)已安裝基于V8引擎的Chrome瀏覽器,它附帶的“開(kāi)發(fā)者工具”(Developer Tools)就是本書(shū)的標(biāo)準(zhǔn)實(shí)驗(yàn)環(huán)境,可以在其中的“控制臺(tái)”(console)運(yùn)行書(shū)中的代碼。

進(jìn)入“控制臺(tái)”,有兩種方法。

  • 在Chrome瀏覽器中,直接按Option + Command + J(Mac)或者Ctrl + Shift + J(Windows/Linux)。

  • 從“工具”(Tools)菜單中打開(kāi)“開(kāi)發(fā)者工具”,然后點(diǎn)擊Console選項(xiàng)卡?!伴_(kāi)發(fā)者工具”的快捷鍵是F12,或者Option + Command + I(Mac)以及Ctrl+Shift+I(Windows/Linux)。

進(jìn)入控制臺(tái)以后,就可以在提示符后輸入代碼,然后按Enter鍵,代碼就會(huì)執(zhí)行。如果按Shift+Enter鍵,就是代碼換行,不會(huì)觸發(fā)執(zhí)行。建議閱讀本書(shū)時(shí),將代碼復(fù)制到控制臺(tái)進(jìn)行實(shí)驗(yàn)。

參考書(shū)目

本書(shū)的寫(xiě)作過(guò)程中,參考了以下書(shū)籍(排名不分先后)。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)