
入門:
《深入淺出JavaScript》
《JavaScript DOM編程藝術(shù)》
重要的是對(duì)知識(shí)深淺度把握的很好,html/js/css/dom各個(gè)方面都把握在一個(gè)合適的度
《JavaScript DOM高級(jí)程序設(shè)計(jì)》
《javascript-55個(gè)javascript常用代碼》
《JavaScript從入門到精通》
《Javascript基礎(chǔ)教程(文字版,代碼可復(fù)制)》
《Javascript基本語(yǔ)法》
35 個(gè) jQuery 小技巧
JavaScript常用方法函數(shù)收集
進(jìn)階:
《ppk談JavaScript》
《精通JavaScript》
我會(huì)把書(shū)籍分成兩類,一類是全面型,一類是犀利型.前面介紹了一本全面型的書(shū)籍,
接下來(lái)介紹的這本的特點(diǎn)是非常犀利,
這類書(shū)籍的特點(diǎn)是作者能找對(duì)重點(diǎn)(2/8原則掌握的很好),在重點(diǎn)位置深入挖掘.
這本書(shū)的作者John Resig也是JQuery的作者,他顯然是個(gè)足夠犀利的人兒.
JQuery從未承諾解決所有問(wèn)題,但再一些重點(diǎn)部位的突破,讓這個(gè)類庫(kù)如此流行.
這本書(shū)并沒(méi)有著重介紹JQuery,還是基于原生的JavaScript和DOM API.
列一些這本書(shū)的重點(diǎn)話題,能夠很好的看出作者為什么會(huì)開(kāi)發(fā)出JQuery,或者說(shuō)JQuery為什么是現(xiàn)在的樣子:
1.如何創(chuàng)建可復(fù)用的代碼?如何調(diào)試,測(cè)試?(這是基礎(chǔ))
2.如何判斷DOM何時(shí)加載完畢?如何遍歷,修改DOM?(JQuery以DOM為核心,節(jié)點(diǎn)的增刪改查,事件響應(yīng)是重點(diǎn))
3.如何確定元素的位置,相對(duì)于頁(yè)面/屏幕?如何做平滑的動(dòng)畫(huà)?(思考下CSS相關(guān)的話題很多,作者為什么選了這兩個(gè)?)
4.如何改進(jìn)表單驗(yàn)證,封裝完整的Ajax程序?(涉及數(shù)據(jù)交互,是另一個(gè)重中之重.)
不算厚的一本書(shū),基本上就是以上的話題+幾個(gè)實(shí)例.
當(dāng)我們看過(guò)了一本全面型的書(shū)籍,對(duì)前端的知識(shí)有了深入的了解之后,
這本書(shū)的作者指出了今后的重點(diǎn),并告訴大家如何把知識(shí)用到解決重點(diǎn)問(wèn)題上.
《JavaScript高級(jí)程序設(shè)計(jì)》
《JavaScript+網(wǎng)頁(yè)開(kāi)發(fā)實(shí)例教程》
《JavaScript-精通JavaScript動(dòng)態(tài)網(wǎng)頁(yè)編程》
《JavaScript核心對(duì)象參考手冊(cè)》
《javascript征途-第四章(完整版)》
最全的常用正則表達(dá)式
常用的JavaScript驗(yàn)證正則表達(dá)式
高級(jí):
《JavaScript語(yǔ)言精粹》
1.函數(shù)是頭等對(duì)象(可以作為其他函數(shù)的參數(shù)和返回值,支持閉包)
2.基于原型繼承的動(dòng)態(tài)對(duì)象
3.對(duì)象字面量和數(shù)組字面量(構(gòu)成JSON的基礎(chǔ))
老道列出了很多雞肋和糟粕,并提供了JSLint這個(gè)工具,
來(lái)校驗(yàn)代碼是否使用了不好的部分.書(shū)中給出的語(yǔ)法圖讓我有深入學(xué)習(xí)一下<編譯原理>的沖動(dòng),
也理解了JSLint作為用JS語(yǔ)言分析JS語(yǔ)言的工具成型的理論基礎(chǔ).
強(qiáng)烈建議大家使用JSLint來(lái)檢測(cè)自己的代碼,但是我們不必教條,
可以違返其中一些的檢測(cè)規(guī)則,只要我們清楚老道為什么會(huì)設(shè)置這個(gè)規(guī)則,
有什么風(fēng)險(xiǎn)?若我們不遵守這個(gè)規(guī)則,是否能回避相應(yīng)的風(fēng)險(xiǎn).
我覺(jué)得這本書(shū)最重要的意義是告訴我們?yōu)槭裁?它是雞肋,
它是糟粕"這是經(jīng)過(guò)前面的學(xué)習(xí)和大量實(shí)踐之后,成熟的開(kāi)發(fā)者應(yīng)該關(guān)注的.比如:
1.hasOwnProperty,老道說(shuō)它糟粕的原因是因?yàn)檫@不是一個(gè)關(guān)鍵字,而是一個(gè)Object.prototype上可以被重寫(xiě)的方法.
那么這個(gè)告訴我們,并不是不要用hasOwnProperty,而是要注意不要覆蓋它.
2.eval的主要問(wèn)題是性能,大量的eval(類eval)語(yǔ)句降低了JS引擎的性能.
而經(jīng)過(guò)測(cè)試少量的eval語(yǔ)句+eval大段的JS文本性能并不差,有必要也可以考慮使用.
《JavaScript設(shè)計(jì)模式》
《Secrets of the JavaScript Ninja》
《高性能JavaScript》
《javascript面向?qū)ο缶幊?》
《javascript語(yǔ)言精髓與編程實(shí)踐精簡(jiǎn)版》
《即用即查——JavaScript核心對(duì)象》
《JavaScript高級(jí)編程》
《JavaScript_高級(jí)程序設(shè)計(jì)[精華]》
《JavaScript高級(jí)程序設(shè)計(jì)(學(xué)習(xí)筆記)》
Javascript高性能動(dòng)畫(huà)與頁(yè)面渲染

對(duì)于非英文專業(yè)的同學(xué),如果有中譯本,不用非得糾結(jié)著去看原版,我們要最快學(xué)到知識(shí),最快進(jìn)入思考與實(shí)踐.