搜尋
首頁web前端js教程JavaScript高效學習之路總結篇

JavaScript高效學習之路總結篇

Aug 04, 2017 pm 01:31 PM
javascriptjs總結

1.首先我會把Chrome瀏覽器裝好,在dev tools => console裡直接練習熟悉基本語法,變量,數據類型,數學運算,字符串運算,條件,循環基本結構,簡單函數定義和調用這些,之所以用chrome dev tools,是因為這時候我不想費勁折騰單獨的編輯器,也不需要在開文件和文件夾,然後去配一些工具最終才接觸到真正的JS編程,我想盡可能直接而少干擾就開始寫JS,這是最重要的,我學JS,當然應該盡快寫JS

2.熟悉了基本語法以後,我會在devtools => console 裡編幾個稍微有挑戰點的小程序,比如實現fibonaci 數列這種簡單的,比如打印一個99乘法表,你也可以自己給自己出幾個題,或者網路上隨機找有興趣的題目,別人寫過沒寫過不是重點,重點是找點事情做,讓自己寫程式碼,別小看這些看起來無聊的程序,在你的熟練度達到可以開始第一個在專案之前,這些沒有的小程式是最適合練手的,因為它們不牽涉其他方面的知識(例如DOM),所以你不會受到過多幹擾,只需要專注於用正確的語法寫出正確的程序,這個過程會讓你更熟悉JS語言本身。

3.我覺得差不多的時候,就可以學習用JS來做web開發了,但是別急,這時候還沒準備好新建一個項目,所以我還是會在devtools裡,但是側重是熟悉DOM,我會從簡單的window.alert, window.prompt 開始,慢慢地去試驗DOM的API如何使用,我會買一本DOM編程的書,放在案頭,一章一章往下看,邊看邊試,慢慢地接觸到DOM的常用操作,例如document.getElementById, document.getElementsByClassName, addEventListner, 等等,這些呼叫裡面有很重要的概念,例如什麼是ID,什麼是Class,什麼是Event ,它們有什麼用,JS語言是如何透過API和它們互動的。我會選幾個網站的頁面,隨便對頁面的元素做一些修改,例如用JS改變元素的字體,背景色,或是臨時增加事件偵聽等等。 DOM API的行為產生的效果你能在網頁上直接看出來,很直觀,也比較有趣,比之前寫純JS程式這些更生動,能激發學習的好奇心,並且DOM是JS程式設計師的核心知識。

4.通常看完一本DOM程式設計的書以後,大概地了解了JS在web程式設計中的用處了。這時候我會為自己選一個項目,像是留言版這種,以HTML5 Boilerplate為模板,開始第一個web前端專案的開發。資料的儲存可以直接存放在IndexDB裡,所以這時候不需要關心後台操作。我會大概的考慮好要做什麼功能,然後用之前學到的JS和DOM操作的知識,好好實現這些功能。這個專案會花去我大量的時間,所以我告訴自己要保持耐心。碰到問題我就去用搜尋引擎找答案,或是去書裡找對應的章節。

5.寫完第一個項目以後,我會第一次覺得很有成就感,雖然項目很小,也不複雜。我會找一個老師幫我review一下,聽聽他的意見和建議,也可以準備一些問題,讓他幫忙看接下去可以怎麼迭代。這時候我會去學習git的基本操作,github的基本使用,然後把專案push上去,把需要的改動commit進git。

6.在這之前我寫的都是原生JS,沒有用到庫,沒有用到框架,這樣的好處是我不需要過早地去糾結庫和框架本身的概念,因為現在真正重要的是JS語言本身,其實我的程式領域比起最開始已經有了很大的拓展,你看我已經用JS,配合DOM,寫出來一些很實際的功能,完成了一個前端專案。

7.這時候我的選擇比較多,我可以:繼續用原生JS完成一兩個類似的項目,比如註冊登陸,動態圖片展示等等;也可以:嘗試改進當前項目的程序設計,做一些程式碼的改進,這時候可以去看看JS模式這樣的書,因為第一個專案的程式碼結構通常沒有特別的程式設計,卻章法,這樣的書能告訴你更好的JS程式可以如何;我還可以乘勢把手上的項目重構成基於jQuery的程式碼,這樣就在對比中學會了jQuery的基礎,理解了jQuery的好處;我甚至可以把當前項目代碼重構成ES6語法,這樣就能在對比中ES6語法的好處。

8.接下來我就會去寫更複雜的項目,例如TODOLIST,自己從頭到尾實現一個這樣的應用,同樣以原生JS(ES5)寫第一個版本,然後選擇是否重構到jQuery或ES6,如果有興趣,甚至是TypeScript。繼續看JS程式設計方面的書,注意力應該是在程式“設計”,而不是語法細節,大多數時候語法的問題都是可以搜尋到的。程式「設計」是分析應用的需求,什麼功能,是否需要分模組,模組好不好分,不好分怎麼漸進地找出架構的方案,什麼樣的模組化是比較自然的,如何處理錯誤,是否需要模板支持,複雜的用例是自己實現還是找第三方的庫來集成,等等這些和實際開發零距離的問題。

9.這個專案我還是會放進github,寫完以後我就找一個老師(免費付費都沒關係),review一下我的實現,讓他指出我理解錯誤的地方,這是寶貴的學習機會。和第一個專案一樣,我還是會根據老師的回饋和自己的思考,決定是否繼續迭代,以及如何繼續進步。到這個時候,我也許會把市面上所有的Javascript的必讀書都買來看,看第一書很慢,第二本書不快,但看到第四五本書的時候,就可以很快了,挑選其中自己不了解的章節專門閱讀,然後把書裡提到的知識,技巧,實踐用到之前寫過的項目中去。

10我現在已經有了JS(ES5)比較全面的基礎,也比較熟練了,至少碰到問題我大概知道方向是什麼。我也接觸了jQuery,甚至可能已經比較熟悉;ES6也是。我對語言的基本生態有了比較全面而深刻的映像。現在我想來學一個框架,我會去做一點功課,看看自己喜歡哪個框架,選定了以後,我就先做完官方的tutorial,同時清楚一些基本的概念問題。

11.然後我做的,就是把之前的專案(如TODOLIST),用框架重新寫一遍,這時候我不會再有覺得很深澀的地方了,因為我有了JS的基礎,已經有了一些自己找答案,debug的經驗,即使框架本身有不清楚的地方,我都能自己透過搜索,或者研究,把答案找出來。就算找不出來,也至少有了基本的開發思維,雖然不知道答案,但也有大概的方向,如果我要問別人問題,也能問出更有回答價值的問題來,我已經走上了專業開發的路,不是因為我知道框架的這和那,而是我有了做開發的基本習慣和素養。

12.也許這時候我找到了第一份前端的工作,一段時間以後我發現自己對node後台開發和electron產生了興趣,我閱讀了基本的文檔以後,發現其實並不需要怎麼學習就可以用這些東西了。因為JS程式的架構,常見結構,模式,主要概念,我已經熟稔於胸,所以只要是在JS這個生態內,不管新出了什麼技術,無論是庫,框架還是模式,我都能在第一時間找到理解他們的路徑,我已經學會了怎麼學習,那些東西在JS程式裡是重要的,概念是如何組合的,變遷的,所以對我來說,學JS和用JS已經沒有什麼區別了。

13.然後呢,通常真正循序漸進學過來,語言基礎紮實的,到這時候已經不需要人來教了。

我認為有一些觀念和操作是和循序漸進相悖的。

1.過早追求「系統」學習,好高騖遠,眼高很容易手低,人的精力是有限的,要尊重學習規律,承認自己是普通人,告誡自己不要取巧,不要貪婪,慢慢來

2.覺得讀源碼是最「本質」的學習,結果是掉進細節的深坑不能自拔

3.過早埋頭進「最新」技術,例如框架,在沒有良好的語言基礎之前學,事倍功半,」最新「技術和核心技術很多時候不是一回事,有了基礎和核心,學新技術才是最有效率的,反過來卻不成立

4.把程式設計學習等同於看書累積“知識”,但程式設計最終是一種技能,不動手什麼也學不會,“知道”什麼和“會”什麼是兩回事

5.具體的東西不學,卻一開始就試圖找到「最佳」學習路徑,可能是最大的浪費了,有意義的目標是告訴自己明天幹什麼,而不是假設自己明天「應該」學會什麼

6.過度堆砌學習資料,以為找到的資料越多,羅列越完整,自己學得越快越好,事實恰恰相反,越是羅列,噪音越大,心理壓力和挫敗感越強,越容易放棄,在一個階段,一本書,配合少量網絡資料足夠了,」收藏「是一個不怎麼好的習慣,學習的人應該追求知識的消化,而不是堆砌

#

以上是JavaScript高效學習之路總結篇的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
JavaScript引擎:比較實施JavaScript引擎:比較實施Apr 13, 2025 am 12:05 AM

不同JavaScript引擎在解析和執行JavaScript代碼時,效果會有所不同,因為每個引擎的實現原理和優化策略各有差異。 1.詞法分析:將源碼轉換為詞法單元。 2.語法分析:生成抽象語法樹。 3.優化和編譯:通過JIT編譯器生成機器碼。 4.執行:運行機器碼。 V8引擎通過即時編譯和隱藏類優化,SpiderMonkey使用類型推斷系統,導致在相同代碼上的性能表現不同。

超越瀏覽器:現實世界中的JavaScript超越瀏覽器:現實世界中的JavaScriptApr 12, 2025 am 12:06 AM

JavaScript在現實世界中的應用包括服務器端編程、移動應用開發和物聯網控制:1.通過Node.js實現服務器端編程,適用於高並發請求處理。 2.通過ReactNative進行移動應用開發,支持跨平台部署。 3.通過Johnny-Five庫用於物聯網設備控制,適用於硬件交互。

使用Next.js(後端集成)構建多租戶SaaS應用程序使用Next.js(後端集成)構建多租戶SaaS應用程序Apr 11, 2025 am 08:23 AM

我使用您的日常技術工具構建了功能性的多租戶SaaS應用程序(一個Edtech應用程序),您可以做同樣的事情。 首先,什麼是多租戶SaaS應用程序? 多租戶SaaS應用程序可讓您從唱歌中為多個客戶提供服務

如何使用Next.js(前端集成)構建多租戶SaaS應用程序如何使用Next.js(前端集成)構建多租戶SaaS應用程序Apr 11, 2025 am 08:22 AM

本文展示了與許可證確保的後端的前端集成,並使用Next.js構建功能性Edtech SaaS應用程序。 前端獲取用戶權限以控制UI的可見性並確保API要求遵守角色庫

JavaScript:探索網絡語言的多功能性JavaScript:探索網絡語言的多功能性Apr 11, 2025 am 12:01 AM

JavaScript是現代Web開發的核心語言,因其多樣性和靈活性而廣泛應用。 1)前端開發:通過DOM操作和現代框架(如React、Vue.js、Angular)構建動態網頁和單頁面應用。 2)服務器端開發:Node.js利用非阻塞I/O模型處理高並發和實時應用。 3)移動和桌面應用開發:通過ReactNative和Electron實現跨平台開發,提高開發效率。

JavaScript的演變:當前的趨勢和未來前景JavaScript的演變:當前的趨勢和未來前景Apr 10, 2025 am 09:33 AM

JavaScript的最新趨勢包括TypeScript的崛起、現代框架和庫的流行以及WebAssembly的應用。未來前景涵蓋更強大的類型系統、服務器端JavaScript的發展、人工智能和機器學習的擴展以及物聯網和邊緣計算的潛力。

神秘的JavaScript:它的作用以及為什麼重要神秘的JavaScript:它的作用以及為什麼重要Apr 09, 2025 am 12:07 AM

JavaScript是現代Web開發的基石,它的主要功能包括事件驅動編程、動態內容生成和異步編程。 1)事件驅動編程允許網頁根據用戶操作動態變化。 2)動態內容生成使得頁面內容可以根據條件調整。 3)異步編程確保用戶界面不被阻塞。 JavaScript廣泛應用於網頁交互、單頁面應用和服務器端開發,極大地提升了用戶體驗和跨平台開發的靈活性。

Python還是JavaScript更好?Python還是JavaScript更好?Apr 06, 2025 am 12:14 AM

Python更适合数据科学和机器学习,JavaScript更适合前端和全栈开发。1.Python以简洁语法和丰富库生态著称,适用于数据分析和Web开发。2.JavaScript是前端开发核心,Node.js支持服务器端编程,适用于全栈开发。

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脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器