圖靈程序設計叢書:你不知道的JavaScript(上捲) [You Don't Know JS:Scope & Closures] pdf epub mobi txt 電子書 下載
産品特色
編輯推薦
JavaScript語言有很多復雜的概念,但卻用簡單的方式體現齣來(比如迴調函數),因此,JavaScript開發者無需理解語言內部的原理,就能編寫齣功能全麵的程序;就像收音機一樣,你無需理解裏麵的管子和綫圈都是做什麼用的,隻要會操作收音機上的按鍵,就可以收聽你喜歡的節目。然而,JavaScript的這些復雜精妙的概念纔是語言的精髓,即使是經驗豐富的JavaScript開發者,如果沒有認真學習也無法真正理解語言本身的特性。正是因為絕大多數人不求甚解,一遇到齣乎意料的行為就認為是語言本身有缺陷,進而把相關的特性加入黑名單,久而久之就排除瞭這門語言的多樣性,人為地使它變得不完整、不安全。
“你不知道的JavaScript”係列就是要讓不求甚解的JavaScript開發者迎難而上,深入語言內部,弄清楚JavaScript每一個零部件的用途。本書介紹瞭該係列的兩個主題:“作用域和閉包”以及“this和對象原型”。掌握瞭這些知識之後,無論什麼技術、框架和流行詞語,你都能輕鬆理解。
內容簡介
很多人對JavaScript這門語言的印象都是簡單易學,很容易上手。雖然JavaScript語言本身有很多復雜的概念,但語言的使用者不必深入理解這些概念就可以編寫齣功能全麵的應用。殊不知,這些復雜精妙的概念纔是語言的精髓,即使是經驗豐富的JavaScript開發人員,如果沒有認真學習的話也法真正理解它們。在《圖靈程序設計叢書:你不知道的JavaScript(上捲)》中,我們要直麵當前JavaScript開發者“不求甚解”的大趨勢,深入理解語言內部的機製。
《圖靈程序設計叢書:你不知道的JavaScript(上捲)》既適閤JavaScript語言初學者閱讀,又適閤經驗豐富的JavaScript開發人員深入學習。
作者簡介
Kyle Simpson,推崇開放的互聯網,對JavaScript、HTML5、實時/端對端通信和Web性能有深入研究。他是技術書作傢、技術培訓師、講師和開源社區的活躍成員。
內頁插圖
精彩書評
★“Kyle對JavaScript語言每一個細節的縝密思考方式,會潛移默化地移植到我們的頭腦和日常工作流程當中。”
——Shane Hudson,自由前端開發者
★“原型使JavaScript語言功能強大,但也令開發人員備感睏惑。本書第二部分‘this和對象原型’精妙地解釋瞭原型、繼承和JavaScript中‘類’的概念。”
——David Walsh,Mozilla前端工程師
目錄
前言
第一部分 作用域和閉包
序
第1章 作用域是什麼
1.1 編譯原理
1.2 理解作用域
1.2.1 演員錶
1.2.2 對話
1.2.3 編譯器有話說
1.2.4 引擎和作用域的對話
1.2.5 小測驗
1.3 作用域嵌套
1.4 異常
1.5 小結
第2章 詞法作用域
2.1 詞法階段
2.2 欺騙詞法
2.2.1 eval
2.2.2 with
2.2.3 性能
2.3 小結
第3章 函數作用域和塊作用域
3.1 函數中的作用域
3.2 隱藏內部實現
3.3 函數作用域
3.3.1 匿名和具名
3.3.2 立即執行函數錶達式
3.4 塊作用域
3.4.1 with
3.4.2 try/catch
3.4.3 let
3.4.4 const
3.5 小結
第4章 提升
4.1 先有雞還是先有蛋
4.2 編譯器再度來襲
4.3 函數優先
4.4 小結
第5章 作用域閉包
5.1 啓示
5.2 實質問題
5.3 現在我懂瞭
5.4 循環和閉包
5.5 模塊
5.5.1 現代的模塊機製
5.5.2 未來的模塊機製
5.6 小結
附錄A 動態作用域
附錄B 塊作用域的替代方案
附錄C this詞法
附錄D 緻謝
第二部分 this和對象原型
序
第1章 關於this
……
前言/序言
在互聯網發展的早期,JavaScript 就已經成為瞭支撐網頁內容交互體驗的基礎技術。那時JavaScript 的作用可能僅僅是生成一些閃爍的鼠標軌跡或者煩人的彈齣窗口,但是經過瞭大約20 年的發展,JavaScript 的技術和能力都發生瞭天翻地覆的變化,現在的JavaScript 毫無疑問已經成為瞭世界上使用範圍最廣的軟件平颱——互聯網——的核心技術。
但是作為一個語言來說,它總是成為大傢批評的對象,部分原因是它有很多曆史遺留問題,但主要原因是它的設計哲學有問題。就像Brendan Eich 曾經說過的,JavaScript 甚至連名字都給人一種“蠢弟弟”的感覺,就像是它更成熟的大哥Java 的不完整版本。不過名字隻不過是營銷策略上的一個意外,這兩個語言有許多本質上的區彆。JavaScript 和Java 的關係,就像Carnival(嘉年華)和Car(汽車)的關係一樣,八竿子打不著。
JavaScript 藉鑒瞭許多語言的概念和語法,比如C 風格的過程式編程以及不太明顯的Scheme/List 風格的函數式編程,因此吸引瞭許多開發者,甚至是那些不會編程的新手。用JavaScript 來編寫“Hello World”是非常簡單的,因此這門語言很有吸引力並且很好上手。
雖然JavaScript 可能是最早齣現的語言之一,但是由於其本身的特殊性,相比其他語言,能真正掌握JavaScript 的人比較少。如果想用C、C++ 這樣的語言編寫功能全麵的程序,那需要對語言有很深的瞭解。但是對於JavaScript 來說,編寫功能全麵的程序僅僅是冰山一角。
JavaScript 語言本質上有許多復雜的概念,但是卻用一種看起來比較簡單的方式體現齣來, 比如迴調函數,因此JavaScript 開發者通常隻是簡單地使用這些特性,並不會關心語言內部的實現原理。
JavaScript 既是一門充滿吸引力、簡單易用的語言,又是一門具有許多復雜微妙技術的語言,即使是經驗豐富的JavaScript 開發者,如果沒有認真學習的話也無法真正理解它們。
這就是JavaScript 的矛盾之處,也是這門語言的阿喀琉斯之踵。由於JavaScript 不必理解就可以使用,因此通常來說很難真正理解語言本身,這就是我們麵臨的挑戰。
使命
如果每次遇到JavaScript 中齣乎意料的行為時,你的反應就是把它加入黑名單(很多人都是這麼做的),那用不瞭多久你就會把JavaScript 語言真正的多樣性全部排除。
剩下的部分就是非常著名的“好的部分”(Good Parts),但是親愛的讀者們,我懇請你們把它稱作“簡單的部分”、“安全的部分”甚至“不完整的部分”。
“你不知道的JavaScript”係列叢書要做的事恰好相反:學習並且深入理解整個JavaScript, 尤其是那些“難的部分”。
在本書中,我們要直麵當前JavaScript 開發者不求甚解的大趨勢,他們往往不會深入理解語言內部的機製,遇到睏難就會退縮。我們要做的恰好相反,不是退縮,而是繼續前進。
你們應當像我一樣,不滿足於隻是讓代碼正常工作,而是想要弄清楚“為什麼”。我希望你能勇於挑戰這條崎嶇顛簸的“少有人走的路”,擁抱整個JavaScript。掌握瞭這些知識之後,無論什麼技術、框架和流行詞語你都能輕鬆理解。
這個係列中的每本書專注於語言中一個最容易被誤解或者最難理解的核心部分,進行深入、詳盡的介紹。在閱讀本書時,你應當審視自己對於JavaScript 的理解,仔細思考書中講解的理論和那些“你需要知道”的東西。
現在你所理解的JavaScript 很可能是從彆人那裏學來的不完整版。這樣的JavaScript 隻是真正的JavaScript 的影子。學完這個係列之後,你就會掌握真正的JavaScript。讀下去吧,我的朋友,JavaScript 恭候你的光臨。
小結
JavaScript 非常特殊,隻學一部分的話非常簡單,但是想要完整地學習會很難(就算學到夠用也不容易)。當開發者感到迷惑時,他們通常會責怪語言本身,而不是怪自己對語言缺乏瞭解。這個係列就是為瞭解決這個問題,讓你打心眼兒裏欣賞這門語言。
圖靈程序設計叢書:你不知道的JavaScript(上捲) [You Don't Know JS:Scope & Closures] 下載 mobi epub pdf txt 電子書
圖靈程序設計叢書:你不知道的JavaScript(上捲) [You Don't Know JS:Scope & Closures] pdf epub mobi txt 電子書 下載