寫在前面
JavaScript 深入系列共計 15 篇已經正式完結,這是一個旨在幫助大家,其實也是幫助自己捋順 JavaScript 底層知識的系列。重點講解了如原型、作用域、執行上下文、變數物件、this、閉包、按值傳遞、call、apply、bind、new、繼承等 JS 語言中的比較難懂的概念。
JavaScript 深入系列自 4 月 6 日釋出第一篇文章,到 5 月 12 日釋出最後一篇,感謝各位朋友的收藏、點贊,鼓勵、指正。
而此篇,作為深入系列的總結篇,除了彙總各篇文章,作為目錄篇之外,還希望跟大家聊聊,我為什麼要寫這個系列?
我為什麼要寫深入系列?
講一個對我學技術的態度很有影響的一件事情。
曾經團隊邀請過 Nodejs 領域一個非常著名的大神來分享,這裡便不說是誰了。當知道是他後,簡直是粉絲的心情。但是課講得確實一般,也許是第一次講,準備不是很充足吧,以至於我都覺得我能講得比他好,但是有兩次,讓我覺得這是真正的大神。一次就是,當有同事問到今年有什麼流行的前端框架嗎?這些框架有怎樣的適用場景?該如何抉擇?我以為大神一定會回答當時正火的 React、以及小鮮肉 Vue 之類,然後老生常談的比較一番,但是他回答道:“I dont't care!因為這些並不重要,真正重要的是底層,當你瞭解了底層,你就能很輕鬆的明白這些框架的原理,當你明白了原理,這些框架又有什麼意思呢?”
雖然這段話因為過去太久,已經不記得確切的表述,但是給了我非常深刻的印象,自己一路學習過來,新的東西不停的冒出,但是學的再多感覺自己也只是學了一堆 API,如果僅僅是為了解決工作上的問題,或許已經足夠,但是內心經常還會冒出一種不安定感,這種不安定感或許來自於對 JavaScript 未知部分的恐懼,或許來自於解決問題卻不明所以的尷尬,或許來自於屢次學習語言難點卻不得門道的失敗……程式碼寫的越久,這種感覺就越是鮮明。
當然了,大家也不要過分解讀底層,各種計算機語言追究到底層都是編譯原理之類,如果是有這方面的興趣,固然可以,但是如果本質上還是為了解決上層問題,倒不必一定要深究到這個層面。用 JavaScript 瞭解這門語言本身的使用和原理,用 jQuery 看看 jQuery 的原始碼實現,用 React 技術棧,寫寫 React、Redux 簡單的模擬實現,諸如此類,都是對底層的一種追求。
這樣講的話,底層這個詞,更像是一個方向,一種學習的態度吧。
為了更加深入的瞭解 JavaScript 這門語言,我將之前記錄的一些要學習的關鍵詞作為課題進行研究,後來研究的差不多了,才決定動筆寫下這個系列。儘管這個系列很多地方上依然不夠所謂的“深入”,但就跟學習這些內容之前的我相比,已然多了份安定感,解決一些問題時也多了份得心應手,也希望大家能從這個系列中有所收穫。
然而即便已經寫了 15 篇,也只是漫長路途的開始,在我 Github 部落格倉庫的描述中就有寫到,我預計寫 4 個系列,JavaScript 深入系列,JavaScript 專題系列,ES6 系列,React 系列,其實從“深入系列”到“專題系列”再到“ React 系列”,就是原來寫著上層的我決定從語言層面開始一步一步走回上層的記錄,而現在,我也只是邁出了第一步。
重新修訂
在釋出完最後一篇後,我花了一週時間,根據大家的評論和留言,並且參照阮一峰老師的《中文技術文件的寫作規範》對所有的文章進行了一次修訂。
說起來,改的最多的就是給英文單詞兩邊加個空格……
此外,大家有疑問或指正或鼓勵或感謝,儘管留言回覆哈 []~( ̄▽ ̄)~* 。
全目錄
除了前兩篇連結到 Github 上,其他都連結到對應的掘金的專欄文章,並且為了方便大家一篇一篇閱讀,每篇文章都新增了下一篇文章的連結。
- JavaScirpt深入之從原型到原型鏈
- JavaScript深入之詞法作用域和動態作用域
- JavaScript深入之執行上下文棧
- JavaScript深入之變數物件
- JavaScript深入之作用域鏈
- JavaScript深入之從ECMAScript規範解讀this
- JavaScript深入之執行上下文
- JavaScript深入之閉包
- JavaScript深入之引數按值傳遞
- JavaScript深入之call和apply的模擬實現
- JavaScript深入之bind的模擬實現
- JavaScript深入之new的模擬實現
- JavaScript深入之類陣列物件與arguments
- JavaScript深入之建立物件的多種方式以及優缺點
- JavaScript深入之繼承的多種方式以及優缺點
作者推薦
在我研究一些課題的時候,有時感覺自己深受啟發,頗有醍醐灌頂的感覺,我也希望這個系列的讀者能感受到跟作者當初學習這些內容時的一樣興奮的感覺,所以強烈推薦以下三篇:
真的完結?
JavaScript 底層知識哪有這麼一點吶!在不斷學習的過程中,還會冒出一些新的課題適合劃分到深入系列,如果是這樣的話,就會偶爾釋出一篇,當然了,如果冒出太多的話,不保證再來一個深入系列第二季,哈哈。
宣傳
順便宣傳一下該部落格的 Github 倉庫:github.com/mqyqingfeng…,歡迎 star,鼓勵一下作者。
下期預告
一週之內,會發布新的系列即 JavaScript 專題系列,這個系列主要研究日常開發中一些功能點的實現,比如防抖、節流、去重、拷貝、最值、扁平、柯里、遞迴、亂序、排序等,特點是抄襲 underscore 和 jQuery 的實現方式,而這次預計寫二十篇左右。
感謝大家的閱讀和支援,我是冴羽,JavaScript 專題系列再見啦![]~( ̄▽ ̄)~**