學(xué)習(xí)啦 > 學(xué)習(xí)方法 > 通用學(xué)習(xí)方法 > 學(xué)習(xí)經(jīng)驗 > 如何才能系統(tǒng)有效的學(xué)習(xí)javascript

如何才能系統(tǒng)有效的學(xué)習(xí)javascript

時間: 欣怡1112 分享

如何才能系統(tǒng)有效的學(xué)習(xí)javascript

  你可曾想過去學(xué)習(xí)JavaScript?它是目前世界上最好和應(yīng)用最廣泛的編程語言之一。想要學(xué)習(xí)的話,一起來看看以下文章吧。以下是學(xué)習(xí)啦小編分享給大家的學(xué)習(xí)javascript的方法的資料,希望可以幫到你!

  學(xué)習(xí)javascript的方法

  No1:大量閱讀

  我是一個勁頭十足的讀者。所以,我的第一個關(guān)于學(xué)習(xí)JavaScript的技巧就是關(guān)于閱讀,這絕不是巧合。書籍和其他的資源(如文章)可以在很大程度上幫助你學(xué)習(xí)JavaScript。通過實踐學(xué)習(xí),書籍是我學(xué)習(xí)新學(xué)科最喜歡的方式。在學(xué)習(xí)JavaScript的情況下,我將會向所有人推薦兩本書。第一本是 Nicolas C. Zackas的《JavaScript高級程序設(shè)計》。這本書將會帶領(lǐng)你從JavaScript基礎(chǔ)到最高級的主題。當(dāng)你看完這本書,并且練習(xí)你所學(xué)過的知識點時,你將會掌握扎實的JavaScript知識。如果你掌握了這本書里面的所有知識點,我相信它會讓你離成為一個JavaScript專家更近一步。不過,這本書還不夠。不要誤會,這本書是很好而且包含了很多內(nèi)容。問題就在于由于ECMAScript6的介紹很多都改變了。

  這本書涵蓋了之前版本的JavaScript,所以,如果你只看《JavaScript高級程序設(shè)計》,你可以學(xué)習(xí)JavaScript,但是你不能學(xué)到最新的JavaScript特性。這就是為什么會有第二本書。這本書是出自同一個作者的《了解ECMAScript》本書包含了有關(guān)JavaScript的前沿信息。閱讀這本書,ECMAScript 6 將不再是你的問題。不過這有一個忠告,不要在閱讀Web開發(fā)人員專業(yè)的JavaScript書籍之前閱讀它。

  理解ECMAScript會教你ECMAScript6的特點。但是你不會學(xué)到JavaScript基礎(chǔ)。這就是你必須在理解ECMAScript之前先閱讀Web開發(fā)人員專業(yè)的JavaScript書籍的原因。第二本書是建立在第一本書的基礎(chǔ)上的。除了這兩本書你還應(yīng)該閱讀關(guān)于JavaScript的文章和帖子。讓你自己沉浸在JavaScript中。

  No2: 親歷親為(勤動手)

  眾所周知,只閱讀遠遠不夠。此外,這也不是最好的記住新知識的方法。你不信?想一想你昨天所閱讀的所有東西。你能記得多少?你還能記得多少事實和數(shù)字?你可能記得你所閱讀過得文章的題目,你還可能大概記得那些文章談?wù)摰氖鞘裁?。但是,如果有人給你做一個測試去測試一些明確的事實和數(shù)字,你可能會失敗。

  毋庸置疑的事實就是你只閱讀了這些文章一次。當(dāng)你帶著學(xué)習(xí)的目的去閱讀的時候,你不止只看一次。你將會反復(fù)的閱讀知道你記住為止。不過,我會認為閱讀不是最有效的學(xué)習(xí)方式。無論你想要學(xué)JavaScript或者其他任何東西,都有很多更有效的方法讓你去完成。這就是通過實踐去學(xué)習(xí)。學(xué)習(xí)代碼的最好的方法就是去編寫代碼。

  我知道這聽起來簡單也相當(dāng)合理。但是,通常我們更喜歡閱讀而不是去實踐。其中有一個原因可能是閱讀更容易更舒適。而且,既然我們尋求舒適,那么閱讀這些東西看起來是一個更好的選擇。并不是!如果你想要學(xué)習(xí)JavaScript,而且是在短時間內(nèi),你必須親歷親為勤動手,這是宜早不宜遲的。

  通過實踐來學(xué)習(xí)的好處

  正如我所提到的,你練習(xí)你所學(xué)的你會學(xué)得更快。你會得到即時的反饋,看看有什么作用。這是書本所無法復(fù)制的東西,包括電子版的。當(dāng)你下定決心通過閱讀來學(xué)習(xí)JavaScript的時候,你必須相信書本里的結(jié)果。這些結(jié)果通常是對的。但是,仍然可能會發(fā)生某些代碼段可能會產(chǎn)生不同的結(jié)果。特別是如果書中的一些語法已經(jīng)過時了,在這種情況下,一些代碼可能就不會運行。

  事實就是編寫和出版一本書籍需要花費時間。所以當(dāng)這本書最后出版的時候,編程語言已經(jīng)包含了不包含在本書中的更新,這不足為奇。因此,你正在學(xué)習(xí)可能已經(jīng)過時的定西。如果你專注于練習(xí),這就不太可能發(fā)生。如果你在學(xué)習(xí)JavaScript的時候使用一些在線編輯器(如CodePen),你總是會使用這種語言的最新版本。JavaScript是一個很好的例子。

  很長一段時間,并沒有關(guān)于ECMAScript 6 的書籍。但是,如果您使用Babel等編譯器,則可以使用此語法編寫代碼。在編程界,這相當(dāng)普遍。通常書籍在出版的時候就已經(jīng)過時了或者很快要過時了。留在技術(shù)前沿的唯一方法就是實踐。通過實踐學(xué)習(xí)JavaScript的另一個理由已經(jīng)提到了,就是能得到即時的反饋和更好的信息保留。

  當(dāng)閱讀JavaScript可能是危險的時候

  這種反饋循環(huán)和改進的保留是為什么即使是最新的書也不會是最好的選擇。此外,閱讀實際上可以讓你退步。當(dāng)你讀到一些的東西時,很容易讓你說服自己你是在取得進步。為什么會這樣呢?你正在瀏覽頁面并深入其中。然而,這只是你自己認為的。如果有人給你測試怎么辦?你能像你翻頁那樣輕松的通過嗎?

  在多數(shù)情況下,翻書比掌握書中包含的知識要容易得多。當(dāng)我決定主要通過閱讀書籍而忽視練習(xí)來學(xué)習(xí)JavaScript時,我意識到了這一點。而且我很快意識到,過了一段時間后,我會忘記我之前閱讀的所有東西。因為很多東西我只看了一次。所以,這是延長我學(xué)習(xí)JavaScript旅程的另一個因素。換句話說,我掌握的信息非常糟糕。而且,我也沒有得到反饋。

  我曾經(jīng)認為看書中的練習(xí)和親自動手操作效果是一樣的,但是大錯特錯!你可以從早到晚用你的腦子寫代碼。然而,除非你測試,否則你永遠都不會知道你的代碼是否有用。甚至連專家和有著多年經(jīng)驗的人都不會依賴他們的想法和猜測。他們測試他們的想法。如果你真的想學(xué)習(xí)JavaScript我建議你也這樣做。

  如果你不確定你該花多少時間去閱讀和練習(xí)該怎么辦?我的答案很簡單。通常在練習(xí)上花費更多時間。如果你必須在閱讀一些東西和練習(xí)上選擇一個,選擇后者。記住,閱讀某事物會讓你說服自己是在進步。不要購買這個錯覺。

  No3:嘗試不同的學(xué)習(xí)方法

  到目前為止,我們討論了學(xué)習(xí)可以通過閱讀或者實踐。這兩種方法足夠可以幫助你學(xué)習(xí)JavaScript。不過,你可以使用更多其他方法來提高你的學(xué)習(xí)能力。有一種理論是這樣說的,每個人都有不一樣的學(xué)習(xí)方式。對這個理論的合理性有一些批評和持續(xù)的爭論。誰知道呢,也許它只是起到安慰的作用。如果你想要,你可以嘗試不同的風(fēng)格,看看哪一種最適合你自己。

  對于那些不相信學(xué)習(xí)風(fēng)格存在的人呢?我依然想鼓勵你們?nèi)L試不同的方式。我理解你們喜歡書籍勝過視頻?;蛘吣銈兿矚g自己嘗試,而不是閱讀它們。最后一個最適合我,書籍排第二。使用各種學(xué)習(xí)方式學(xué)習(xí)JavaScript的原因很簡單。你使用的方式越多,你就越沉浸其中。

  多元的學(xué)習(xí)方法只為更深的沉浸在其中

  然我們來談一談僅僅通過閱讀來學(xué)習(xí)JavaScript。這種方式有一個問題。你會經(jīng)常接觸不到JavaScript。與學(xué)科定期接觸是學(xué)習(xí)的關(guān)鍵。而且,接觸的越頻繁,你會學(xué)得越快。所以,如果你想更快的學(xué)習(xí)JavaScript,辦法就是勇往直前。你需要顯著的增加這個頻率。換句話說,你必須沉浸在其中。

  這就是為什么你需要嘗試盡可能多的方式。你現(xiàn)在在讀一些關(guān)于JavaScript的好書嗎?這是一個好的開始!現(xiàn)在呢,怎么進一步呢?舉個例子,你可以開始閱讀關(guān)于JavaScript的博客文章。由Eric Elliott領(lǐng)銜的“this blog”和“JavaScript Scene)是開始的好地方。你也可以開始聽關(guān)于JavaScript的播客。這里我向大家推薦兩個:“JavaScript Jabber” 和 “JavaScriptAir”。

  如果你更喜歡視頻而不是聲音該怎么辦呢?沒問題! JavaScriptAir 在 YouTube 上也有“its own channel”。另一個你可以學(xué)習(xí)JavaScript和其他關(guān)于網(wǎng)站開發(fā)技術(shù)的頻道是 “LearnCode.academy”。下一個專注于JavaScript的頻道是“JSConfEU”。如果你在尋找課程,使用搜索并選擇你喜歡的。有上百種頻道和視屏可以幫助你學(xué)習(xí)JavaScript。你也可以試試網(wǎng)頁,比如“Lynda” 和 “Udacity”。

  有些人會忽略會談和博客,因為他們不認為這些是有用的。我不同意這個觀點。這些資源常常使人們從多年的實踐中學(xué)到很多洞察力和訣竅。此外,這些資源通常比課程和書本更通俗易懂和有趣。所以,你可以使用這些資源來放松,同時還能學(xué)到很多。

  增加一些交互性

  另一種快速學(xué)習(xí)JavaScript的方法就是加入一些網(wǎng)站的在線課程,例如“Codecademy”,“treehouse”和“Code School”。這些網(wǎng)站最大的進步就是它們的交互性。首先,你看一些介紹的視頻。然后,你可以通過做一些練習(xí)立即練習(xí)你所學(xué)的內(nèi)容。這樣,當(dāng)這些知識還是比較新的時候,你可以練習(xí)你看到的所有知識。這種組合的學(xué)習(xí)方式也可以讓你獲得知識。

  這些網(wǎng)站的缺點是它們通常只能在有限的時間內(nèi)自由使用。然后,你必須得支付一定數(shù)量的金額才可以訂閱。Codecademy是一個例外。你可以免費在Codecsdemy上進行培訓(xùn)、學(xué)習(xí)JavaScript和其他技術(shù)。你將無法獲得額外的資源和支持。另一個非常好的用于培訓(xùn)你的JavaScript技能的網(wǎng)站是“codewars”。在這里,你可以用通過解決各種難題挑戰(zhàn)自己。

  盡管這可能不太適合所有的初學(xué)者,我認為你至少應(yīng)該試一試。Codewars提供了很多要求JavaScript基礎(chǔ)的挑戰(zhàn)。所以,盡管你只是剛剛不如JavaScript的學(xué)習(xí)軌道,你也已經(jīng)可以測試你的技能了。我也應(yīng)該提到這些挑戰(zhàn)比僅僅關(guān)注一些學(xué)者或看視頻有趣得多。還有一件事,Codewars還提供可以與之交談的社區(qū)代碼愛好者。

  JavaScript & DOM 基礎(chǔ)

  在你找到JavaScript的工作之前,你需要掌握JavaScript的基礎(chǔ):

  固定方法: 標(biāo)準(zhǔn)數(shù)據(jù)類型的學(xué)習(xí)方法(特別是 數(shù)組, 對象, 字符串, 和數(shù)字)。

  函數(shù) & 純函數(shù): 可能你覺得已經(jīng)很好地掌握了函數(shù),但是JavaScript經(jīng)常事與愿違,你需要學(xué)會純函數(shù)以掌握函數(shù)編程。

  閉包: 學(xué)習(xí)JavaScript函數(shù)作用域是如何運行的.

  回調(diào): 回調(diào)是當(dāng)另一個函數(shù)運行結(jié)束的時候,發(fā)出信號調(diào)用函數(shù)??梢赃@么說,“做你自己的事,做完了再叫我”。

  Promises: promise是處理終值的方法。當(dāng)一個函數(shù)返回一個promise,你可以用.then()方法添加回調(diào),在promise完成之后運行。終值會傳入你的回調(diào)函數(shù)中。比如 doSomething().then(value => console.log(value));。

  Ajax & 服務(wù)器API調(diào)用: 大多數(shù)有趣的應(yīng)用最終都是聯(lián)網(wǎng)的。你需要知道如何與API交互。

  ES6: 最新版本的JavaScript版本是ES2016 (或者是ES7),但是大多數(shù)開發(fā)者依然沒有掌握ES6。然而這已經(jīng)是過去時了。

  類 (注意:避免類的繼承。 請看類的正確打開方式,然后晚上安心入眠。)

  函數(shù)編程基礎(chǔ): 函數(shù)編程通過編譯數(shù)學(xué)函數(shù)創(chuàng)建程序,避免分享狀態(tài)和可變數(shù)據(jù)。我已經(jīng)好幾年沒有看到一個大量使用函數(shù)編程的JavaScript應(yīng)用作品?,F(xiàn)在是時候掌握這個方法了。

  生成器 和 異步/等待: 在我看來,寫異步代碼最好的方法是看上去是同步的。這里有一個學(xué)習(xí)曲線,但是一旦你學(xué)會了,那么代碼的閱讀會變得簡單。

  性能: RAIL——從 “網(wǎng)頁響應(yīng)速度觀察”和 “WebPageTest.org”開始。

  漸進式Web應(yīng)用程序 (PWAs): 請看“原生應(yīng)用是必然的”和“為什么原生應(yīng)用是必然的”。

  Node & Express: Node讓你在服務(wù)器上使用JavaScript,意味著你的用戶能夠在云中存儲數(shù)據(jù)然后在任何地方都可以使用它。Express是Node具有壓倒性優(yōu)勢的歡迎程度的框架。

  Lodash: 一個極佳的用于JavaScript的,由函數(shù)編程模塊化功能打包而成的模塊化功能包。從lodash/fp從引入data-last函數(shù)模塊。

  學(xué)習(xí)javascript的重要模塊

  1) 可維護性: 通過定義可知, 一個模塊是獨立的。 一個設(shè)計良好的模塊目標(biāo)在于最大程度上減輕代碼庫之間的關(guān)聯(lián)性,這樣每個代碼庫都可以獨立地擴充和提高性能。更新一個單獨的模塊比依賴于其他代碼的模塊要輕松得多。

  回到書的例子,如果你想更新你書中的一個章節(jié),如果對于一個章節(jié)的一個細小的改動需要你同時改變每一章,那么這將會是噩夢。反之,你想用模塊的方法寫每一章節(jié),那么每次改動都不會影響到其他章節(jié)。

  2) 命名空間: 在javascript中,在最高權(quán)重方法范圍外的變量是全局(意思就是每個人都可以獲得他們)。正是這個原因,當(dāng)完全無關(guān)的代碼分享全局變量的時候,命名空間污染是很正常的事情。

  在無關(guān)代碼中共享全局變量在開發(fā)中是一個很大的禁忌。

  我們將在文章之后看到,模塊允許我們通過為我們的變量創(chuàng)建私有空間來防止命名空間污染。

  3) 復(fù)用性: 讓我們在這里誠實點: 我們會復(fù)制我們之前寫入新項目一個點或另一個點的代碼.比如,讓我想象你復(fù)制了一些你之前項目中使用的方法到你現(xiàn)在的項目。

  這沒有問題,但是如果你發(fā)現(xiàn)一個更好的方法去寫那些代碼,你需要回顧并且記得更新任何你寫這個方法的地方。

猜你喜歡:

1.初學(xué)者學(xué)習(xí)javascript的方法有哪些

2.如何系統(tǒng)有效的學(xué)習(xí)歷史知識

3.如何系統(tǒng)有效的學(xué)習(xí)java me

4.如何系統(tǒng)有效的學(xué)習(xí).net開發(fā)

5.如何系統(tǒng)有效的學(xué)習(xí)app軟件

3744117