搜尋
首頁web前端js教程JavaScript學習書籍推薦

JavaScript學習書籍推薦

Dec 20, 2016 pm 03:18 PM
javascript

 說說我對於書的選擇,在從高級程序設計以及DOM編程藝術獲得了較好的用戶體驗之後,基本上延續了選擇譯著的路子,屬順勢而為倒沒有什麼特殊的因素在裡頭.而我一般不會推薦英文原版書,中文更具親和力,JavaScript並不是一門多麼高深的語言,我相信譯者是可以在深刻理解原文的基礎上做翻譯的.我也會讀一些外文書,而往往當我知道一本不錯的書籍有了出版計劃,就會停止精讀,等譯作出版(比如不久前的).不過確實有時會遇到術語翻譯不一致甚至翻譯的不通順的情況,好在多數書網上可以找到英文電子版,實在不解之處對照一下也就可以了.下面都是我精讀過且覺得不錯的書,先分分類再逐本分享下我的讀書心得:
第一批:入門級,也適合想掌握一些前端技能的非前端工程師.
第二批:成為合格的前端工程師
(或)


第三批次:更優秀的程式碼,更優良的設計

第四批次:從語言精簡>


第四批次:從語言精簡>

第四批次:從語言精簡細節到複雜工程實踐,想開發可靠的各類底層程式碼,應該看看



一直在等待:

番外篇:各類專題書籍,讀好第二批次書籍之後,有精力就接觸下



(或)

(或)

應該選擇:
應該選擇:

JavaScript Dom編程藝術(第二版鏈接)


話說這本書的中文標題有一些標題黨的,當初如果知道這僅是一本入門書籍,我是不會買來的.拿到後一天就看完了,對我來說沒有太多技能上的實質幫助.不過這個書語言很流暢,重要的是對知識深淺度把握的很好,html/ js/css/dom各個方面都把握在一個合適的度,這很符合我對書籍期望,一步步走,每一步都踏實.🎜這本書透過幾個實例,循序漸進的介紹了前端開發的方方面面,讓大家能夠了解前端的技術體系概況,又能具備了一些簡單的動手能力.如果大家對我之前寫過的有些感覺,那讀讀這本書正好能上手實踐一把.🎜去年淘寶前端懶懶交流會的豆瓣小站上做了一個調查,如果非要您推荐一本適合新人學習的js方面的書,您的推薦是什麼?雖然投票的人不多,但這本書卻是遙遙領先.🎜🎜JavaScript高級程式設計(第二版連結)🎜🎜

這本書的第一版很全面且不枯燥的書籍,年紀輕輕的NCZ有這樣的大作難能可貴.讀懂這本書,前端技能又可以上一個台階,基本上可以成為專業的前端工程師了.
對於當時的我來講,這本書及時的補充了瀏覽器兼容性方面的知識,特別是事件相關的知識,這個瀏覽器間差別最大.有些內容講的非常簡單明了,比如call和apply的用法,之前總是理解不好,NCZ幾句話+一個例子就說明白了.
然而作為全面型的書籍,第一版也是有一些問題的:
1.閉包只半頁篇幅,沒說清楚.
2.匿名函數沒怎麼講.
3.全書沒提到constructor,更別說hasOwnProperty,__proto__.
這帶來了我之前說的深一腳淺一腳的困擾,這些知識基本上是透過閱讀中補充的,當然當時版本的權威指南也有同樣的問題,比如它沒解釋instanceof.也沒提到__proto__.這造成了我對面向對象理解的不全面,當時在做了N多測試後還很蛋疼的寫了一篇博文,後來接觸到關於OO的全面論述之後,果斷刪掉了這篇JY.
相信這本書的第二版,以及權威指南的第六版肯定會在這些方面進行補充.不過這兩本書都是十足的大部頭,高級程序設計第二版已經比權威指南去除附錄要厚了.
一本全面且不枯燥的書太難找了,所以我還是喜歡第一版.對我技術上的提升幫助非常之大.忍不住再秀一張圖(當時在封閉開發Alimama.com,馬雲時常來,他不肯在書的第一頁簽名搞得好像他寫的,於是把簽名畫在了第二頁.)

精通JavaScript

我會把書籍分成兩類,一類是全面型,一類是犀利型.前面介紹了一本全面型的書籍,接下來介紹的這本的特點是非常犀利,這類書籍的特點是作者能找對重點(2/8原則掌握的很好),在重點位置深入挖掘.這本書的作者John Resig也是JQuery的作者,他顯然是個足夠犀利的人兒.JQuery從未承諾解決所有問題,但再一些重點部位的突破,讓這個類別庫如此流行.這本書並沒有著重介紹JQuery,特別是JQuery風格的代碼寫法,還是基於原生的JavaScript和DOM API.
列一些這本書的重點話題,能夠很好的看出作者為什麼會開發出JQuery,或者說JQuery為什麼是現在的樣子:
1.如何創建可復用的程式碼?如何調試,測試?(這是基礎)
2.如何判斷DOM何時加載完畢?如何遍歷,修改DOM?(JQuery以DOM為核心,節點的增刪改查,事件響應是重點)
3.如何確定元素的位置,相對於頁面/屏幕?如何做平滑的動畫?(思考下CSS相關的話題很多,作者為什麼選了這兩個?)
4.如何改進表單驗證,封裝完整的Ajax程式?(涉及資料交互,是另一個重中之重.)
不算厚的一本書,基本上就是以上的話題+幾個實例.當我們看過了一本全面型的書籍,對前端的知識有了深入的了解之後,這本書的作者指出了今後的重點,並告訴大家如何把知識用到解決重點問題上.

JavaScript語言精粹

推薦大家看看阮一峰老師的博文,JavaScript是Brendan Eich大神10天時間設計出的語言,現在成了Web前端領域的唯一語言.
一方面這門語言博採眾家之長,也幫助它維繫了長久的生命力:
「1.借鑒C語言的基本語法;
2.借鑒Java語言的資料類型和內存管理;
3.借鏡Scheme語言,將函數提升到」第一等公民」(first class)的地位;
4.借鏡Self語言,使用基於原型(prototype)的繼承機制。 「
另一方面」由於設計時間太短,語言的一些細節考慮得不夠嚴謹,導致後來很長一段時間,Javascript寫出來的程式混亂不堪。 「Brendan Eich對其這10天工作的評價是:」它的優秀之處並非原創,它的原創之處並不優秀。 」

Douglas Crockford透過這本書對JavaScript進行了一次大審判,老道認為JavaScript語言有很多優秀的地方,也有一些雞肋和糟粕.老道不反對用這門語言,在規避一些雞肋和糟粕之後它自然是優秀的.
老道認為JavaScript優美的特性如下:
1.函數是頭等對象(可以作為其他函數的參數和返回值,支持閉包)
2.基於原型繼承的動態對象
3.物件字面量和陣列字面量(構成JSON的基礎)
老道列出了很多雞肋和糟粕,並提供了JSLint這個工具,來校驗程式碼是否使用了不好的部分.書中給出的語法圖讓我有深入學習一下的衝動,也理解了JSLint作為用JS語言分析JS語言的工具成型的理論基礎.
強烈建議大家使用JSLint來檢測自己的程式碼,但是我們不必教條,可以違返其中一些的檢測規則,只要我們清楚老道為什麼會設置這個規則,有什麼風險?若我們不遵守這個規則,是否能迴避相應的風險.
我覺得這本書最重要的意義是告訴我們為什麼「它是雞肋,它是糟粕」這是經過前面的學習和大量實踐之後,成熟的開發者​​應該關注的.比如:
1.hasOwnProperty,老道說它糟粕的原因是因為這不是一個關鍵字,而是一個Object.prototype上可以被重寫的方法.那麼這個告訴我們,並不是不要用hasOwnProperty,而是要注意不要覆蓋它.
2.eval的主要問題是性能,大量的eval(類eval)語句降低了JS引擎的性能.而經過測試少量的eval語句+eval大段的JS文本性能並不差,有必要也可以考慮使用.

JavaScript設計模式

這是一本介紹JavaScript面向對象編程以及設計模式非常好的書籍.相對於又一本全面型書籍語言精粹,犀利型書籍登場了.
我對面向對象的看法是:隱藏細節,方便做大.基於良好的抽象和封裝,我們可以方便的自頂而下的設計,自底而上的開發.面向對象的優缺點不是本文的重點,這裡不討論,只能說這是一個非常不錯的代碼設計實現方法論.
JavaScript到底是不是一個物件導向的語言,從本質說一定是的,從表象來說OO的不那麼明顯.我們必須通過一些額外的代碼實現諸如,劃分公有/私有,接口,繼承,多態等特性.由於JavaScript語言的靈活性,實現的方式非常多.這本書的第一部分對常見的兩類實現模式:類式繼承和原型繼承都有非常好的最佳實踐總結.所以我的想法是完全讀懂它,然後按照這個來做就好了.如果這裡介紹的實踐足夠強大,我們沒有必要發明新的繼承實現模式了,事實上YUI一直是這種模式,而新的JavaScript引擎甚至引入了Object.create方法,將一些動作寫入標準內置在JS引擎中.
我們應該將視點放在設計模式上,GoF的設計模式那本書裡的例子,對於前端開發來說並不都是很好理解,而這本書的例子全部是前端相關,有助於大家理解設計模式的精妙.還有些同學說,即使我不了解GoF的理論,我也在默默的用這些模式了.確實是這樣,但我想我們關注設計模式,不光要學會各種模式是怎樣的,更重要的是學習到各種模式適合什麼場合,不適合什麼場合.了解有什麼優點,也要了解有什麼缺點,你正在默默使用的模式存在隱患麼?系統學習之後會對其更有把握.
前幾天聽同事說這本書全面斷貨,不知道是太火,還是印的太少,希望能盡快看到上架.

Secrets of the JavaScript Ninja

進入第四個批次,這裡的書籍多數沒有中譯本出版.現階段想開發靠譜的底層類庫代碼,確實需要啃一些外文書了.英文書很多,沒有精力大量閱讀,通常讀一些口碑較好的書籍.
這是JQuery作者的第二本書,自然優勢犀利型的代表.John Resig已經陸續放出這本書的大部分內容,從2008年開始寫,計劃2012年5月出版.
如果說JR的第一本書能夠看出為什麼有JQuery,那麼這本書能看出讓JQuery發展下去,作者關注了哪些.我們會看到其實一些很細節的內容,比如強調測試用例的建構/自動化測試的方法,例如如何利用每個function實例的length屬性,比如對with,eval的思考和發散等等.
關於這本書具體如何的好處,我還理不清,拿來開開眼界是非常不錯的.記得玉伯大大組織了一波同學在翻譯,不知進展如何了.

JavaScript Patterns

乍看這本書標題,以為又是一本講設計模式的書,那和重複了,開始沒有仔細關注.今年拔赤推薦了它,才發現者並不僅僅介紹GoF的設計模式而是涵蓋前端開發各個面向的先進理論。雖然是09年的書,這兩年前端許多較深刻的變化在這邊書裡都能看到雛形。上一本書犀利,這本更全面。
作者Stoyan Stefanov是Yahoo的前端技術專家,從這本書中可以看到很多YUI3設計上的本源,比如在對象創建模式中介紹的模組模式/沙箱模式.近來CommonJS Loader的流行在這之上的繼續深入發掘.這本書還包括代碼測試,打包,部署,加載策略等各個流程中的諸多細節,這些構成了完整的體系在Yahoo在YUI3都有非常好的實踐.
聽說我們的同事拔赤和一舟在翻譯這本書,非常期待.

ECMA-262
這不是一本書,是俄羅斯小伙子寫的一系列ECMA-262標準分析文章,ECMA-262-3系列已經很完整.標準像彙編語言一樣枯燥,而這系列文章把枯燥的標準轉化為一系列深入討論的話題,配合恰到好處的示例,一定會讓大家對JS引擎的認識再上一層.
網上有一些譯文,但是由於類似文章譯文比較少,很多英文還未達成一致表述,所以推薦閱讀英原文.另外作者很好,遇到的棘手的問題,去諮詢他都能很快收到很好的回复.

期待:一本JavaScript語言作者或引擎實現者寫的書
一直以來期待JavaScript能有一本像C語言的K&R這樣的大作,最近也在讀計算機系統概論補一些大學時沒學好的知識,非常認同書中”自底而上」的學習路線.我想對JavaScript引擎的透徹分析,能夠減少大家看著實驗結果,猜測著寫書的境況.隨著NodeJS的火爆,引擎的技術分析文章越來越多,期待很快出現集大成者.

高性能網站建設指南  進階指南  高性能JavaScript

進入番外篇,推薦的書籍都是有針對性的領域之作,內容往往並不高深,大家根據自己的實際情況進行選擇閱讀.
高性能的網頁是前端必然的追求,Steve Sounders率先在Yahoo開啟了這方面的專題研究,伴隨著的出版和YSlow工具發布.網站性能優化,特別是前端角度和運維角度的優化方案,進入了人們的視野,同時獲得了巨大的效果,甚至形成了名為WPO(Web Performance Optimization)產業.
第一本書除了介紹了能夠立竿見影的規則的同時也開啟了民智.大家開始思考如何做優化,如何結合自己的應用實踐做優化.而後兩本書基本上是遵循優化思路的繼續得來的實踐總結.關於優化的工具,思路,方法是我特別強調的.有興趣的同學可以看下在Yslow 34 Rules之後— 網站性能優化思路和進展 這一篇.

其他領域之作

接下來介紹這些專題類書籍,並不是特別推薦,往往每個專題都有許多書籍可供選擇,隨手寫一些讀書心得吧.
Ajax實戰:06年的書,很早就購入.書中介紹了很多RIA高級應用的相關話題,很開眼界.
JQuery實戰:一定需要一本介紹JQuery的書,這書還可以,不過現在看來應該比較舊了,JQuery已經更新了很多.我主要從這本書了解了JQuery的工具函數擴展機制和插件機制是如何實現的.JQuery讓完全不了解prototype屬性的同學也能寫出可復用的複雜組件,非常不容易,以後再單獨寫寫對JQuery的一些看法吧.
精通CSS:一定需要一本介紹CSS的書,工作中一直以來CSS用的不是很深入,不做特殊介紹.
正則表達式必知必會:一定需要一本正則方面的書籍,這本小冊子查起來蠻方便.

HTML5揭秘和HTML5高級程式設計買回來一直沒看,對HTML5的新增特性還是有了解的,等能用到時再看再評.

希望看到NodeJS方面的書籍,盡快引入.

寫在最後
我只能推薦我看過的書對吧,所以大家懂的.
我們不去對比各種電子產品,就是對比雞蛋大米,書籍都是非常廉價的.
當有了領域內一定的實踐經驗之後,閱讀一本相關的書籍並不是難事,也並不會耗費很多時間.
全面型的書籍可以讓大家技能水平Step By Step的穩步提高,讓大家站得高也站得穩.
犀利型的書籍可以讓大家了解重點,了解別人是怎麼運用那些你也會的知識的.
專題類的書籍是拓寬眼界,幫助大家完成工作任務的好手.
對於非英文專業的同學,如果有中譯本,不用非得糾結著去看原版,我們要最快學到知識,最快進入思考與實踐.
感謝作者,譯者(我的同事中有很多譯者,都說指望這個賺錢是不可能的),以及選擇運作這些書出版的各位老師


 以上就是JavaScript學習書籍推薦的內容,更多相關內容請關注PHP中文網(www.php.cn)! 


陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
Python vs. JavaScript:開發環境和工具Python vs. JavaScript:開發環境和工具Apr 26, 2025 am 12:09 AM

Python和JavaScript在開發環境上的選擇都很重要。 1)Python的開發環境包括PyCharm、JupyterNotebook和Anaconda,適合數據科學和快速原型開發。 2)JavaScript的開發環境包括Node.js、VSCode和Webpack,適用於前端和後端開發。根據項目需求選擇合適的工具可以提高開發效率和項目成功率。

JavaScript是用C編寫的嗎?檢查證據JavaScript是用C編寫的嗎?檢查證據Apr 25, 2025 am 12:15 AM

是的,JavaScript的引擎核心是用C語言編寫的。 1)C語言提供了高效性能和底層控制,適合JavaScript引擎的開發。 2)以V8引擎為例,其核心用C 編寫,結合了C的效率和麵向對象特性。 3)JavaScript引擎的工作原理包括解析、編譯和執行,C語言在這些過程中發揮關鍵作用。

JavaScript的角色:使網絡交互和動態JavaScript的角色:使網絡交互和動態Apr 24, 2025 am 12:12 AM

JavaScript是現代網站的核心,因為它增強了網頁的交互性和動態性。 1)它允許在不刷新頁面的情況下改變內容,2)通過DOMAPI操作網頁,3)支持複雜的交互效果如動畫和拖放,4)優化性能和最佳實踐提高用戶體驗。

C和JavaScript:連接解釋C和JavaScript:連接解釋Apr 23, 2025 am 12:07 AM

C 和JavaScript通過WebAssembly實現互操作性。 1)C 代碼編譯成WebAssembly模塊,引入到JavaScript環境中,增強計算能力。 2)在遊戲開發中,C 處理物理引擎和圖形渲染,JavaScript負責遊戲邏輯和用戶界面。

從網站到應用程序:JavaScript的不同應用從網站到應用程序:JavaScript的不同應用Apr 22, 2025 am 12:02 AM

JavaScript在網站、移動應用、桌面應用和服務器端編程中均有廣泛應用。 1)在網站開發中,JavaScript與HTML、CSS一起操作DOM,實現動態效果,並支持如jQuery、React等框架。 2)通過ReactNative和Ionic,JavaScript用於開發跨平台移動應用。 3)Electron框架使JavaScript能構建桌面應用。 4)Node.js讓JavaScript在服務器端運行,支持高並發請求。

Python vs. JavaScript:比較用例和應用程序Python vs. JavaScript:比較用例和應用程序Apr 21, 2025 am 12:01 AM

Python更適合數據科學和自動化,JavaScript更適合前端和全棧開發。 1.Python在數據科學和機器學習中表現出色,使用NumPy、Pandas等庫進行數據處理和建模。 2.Python在自動化和腳本編寫方面簡潔高效。 3.JavaScript在前端開發中不可或缺,用於構建動態網頁和單頁面應用。 4.JavaScript通過Node.js在後端開發中發揮作用,支持全棧開發。

C/C在JavaScript口譯員和編譯器中的作用C/C在JavaScript口譯員和編譯器中的作用Apr 20, 2025 am 12:01 AM

C和C 在JavaScript引擎中扮演了至关重要的角色,主要用于实现解释器和JIT编译器。1)C 用于解析JavaScript源码并生成抽象语法树。2)C 负责生成和执行字节码。3)C 实现JIT编译器,在运行时优化和编译热点代码,显著提高JavaScript的执行效率。

JavaScript在行動中:現實世界中的示例和項目JavaScript在行動中:現實世界中的示例和項目Apr 19, 2025 am 12:13 AM

JavaScript在現實世界中的應用包括前端和後端開發。 1)通過構建TODO列表應用展示前端應用,涉及DOM操作和事件處理。 2)通過Node.js和Express構建RESTfulAPI展示後端應用。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具