- 看透JavaScript:原理、方法與實踐
- 韓路彪
- 1359字
- 2020-11-28 15:50:40
Preface 前言
第一次接觸JavaScript時的場景現在已經記不清了,不過因為有其他語言的基礎,我很快就上手了。當時感覺JavaScript就是一門不需要專門去學的語言,太簡單了!
但是,隨著使用的深入,才逐漸發現事實并非如此。JavaScript既不像C語言這類面向過程的語言,也不像C++、Java這類面向對象的語言。JavaScript中有些概念雖然在其他語言(這里主要指C、C++和Java)里也有,但是含義卻不盡相同,而且JavaScript中還有很多其他語言所沒有的用法和概念。例如,在函數體中還可以再定義另外一個函數,函數也是對象,而且有個特殊的prototype屬性,另外也可以使用函數創建對象,以及由此引出的閉包、參數作用域鏈和琢磨不透的this指針等,后來感覺越用越不明白了。
隨著近幾年B/S結構的快速發展,JavaScript已經成了一門不可或缺的語言。GitHub在2015年8月20日發布的統計數據顯示,JavaScript是現在最受歡迎的語言。另一篇開源中國社區的文章更是指出,在所有stars超過10000個的倉庫中,基于JavaScript開發的倉庫占到55.7%!
既然離不開那就將其弄明白。經過一段時間的努力終于將其弄清楚了,而且也明白了其背后的實現原理。既然花費了不少精力,那么何不讓更多的人受益,以使自己的付出更有意義呢。于是就有了大家手中的這本書。
本書的目標是幫助讀者理解JavaScript的各種語法及底層的實現原理,進而靈活使用其所提供的內在對象,所以本書并不是針對零基礎的讀者。如果您要閱讀本書,至少需要使用過JavaScript,如果同時還使用過C/C++或者Java就更好了。
本書特點
?系統:全書采用了總分總的結構。首先整體介紹了JavaScript、ECMAScript、DOM、BOM和HTML5之間的關系,然后依次對每一項內容進行講解,最后進行總結。全書系統介紹了JavaScript的內部結構;提出了將JavaScript分為兩種對象的思維方式;深入分析JavaScript中各種屬性和變量的關系;系統闡述DOM及其節點的結構;深入分析了HTML5中6種新增內容的使用方法。
?全面:全面包含整體和細節兩個方面。從整體來說,包含JavaScript基礎、ECMAScript 2015、DOM、BOM和HTML5這5個部分,幾乎涵蓋了JavaScript的所有相關知識。細節指每一部分內容的全面性,例如,JavaScript基礎里涵蓋了this指針、變量作用域、prototype繼承、閉包、對象與對象之間的關系等比較容易出錯的內容,ECMAScript 2015(ECMAScript 6)中介紹了絕大部分新增的內容,而HTML5部分幾乎對所介紹的每種功能都講解了其所包含的全部方法和屬性。
?深入:本書并不僅僅給大家介紹JavaScript中的各種語法,還說明了底層的實現原理,以及使用中需要注意的地方。另外,對于讀者可能不熟悉的內容(例如,數據庫、多線程等)會先介紹相關的概念,然后介紹JavaScript中的操作方法。
?通俗易懂:本書盡量使用通俗易懂的文字給大家介紹相關知識,避免因為一些專有名詞而給大家造成理解上的困難,對于不容易理解的地方還會通過比喻或舉例來幫助大家理解。
本書結構
本書一共分為5篇。
第一篇整體介紹JavaScript的結構,以及與ECMAScript、DOM、BOM、HTML5的關系,另外還對ECMAScript的語法及背后的原理進行了系統講解。
第二篇系統介紹ECMAScript 2015中新增的內容。
第三篇介紹DOM的結構及其所包含的各種子標準。
第四篇介紹BOM中的4個對象。
第五篇介紹HTML5中的6種實用功能,并對全書進行總結。
致謝
本書的整個編寫過程都離不開父親韓志榮的支持和在背后的默默付出,這種感謝是無法言表的。另外,還要感謝清華大學出版社的秦健編輯以及他所在的團隊,如果沒有他們的支持和付出,本書也不可能跟大家順利見面。
寫書并不像看書那么簡單,雖然筆者已經盡力了,但是由于精力和能力的原因難免還會存在表述不準確甚至不正確的地方,還請大家不吝批評指正。
- Python科學計算(第2版)
- 國際大學生程序設計競賽中山大學內部選拔真題解(二)
- C程序設計案例教程
- The HTML and CSS Workshop
- Kotlin從基礎到實戰
- Building Android UIs with Custom Views
- 從零開始學C#
- MATLAB GUI純代碼編寫從入門到實戰
- 深入理解BootLoader
- 監控的藝術:云原生時代的監控框架
- 超簡單:用Python讓Excel飛起來(實戰150例)
- 會當凌絕頂:Java開發修行實錄
- Wearable:Tech Projects with the Raspberry Pi Zero
- SaaS攻略:入門、實戰與進階
- Moodle 3.x Developer's Guide