怎麼輕鬆學習JavaScript
js給初學者的印象總是那麼的“雜而亂”,相信很多初學者都在找輕鬆學習js的途徑。
我試著總結自己學習多年js的經驗,希望能給後來的學習者探索出一條“輕鬆學習js之路”。
js給人那種感覺的原因多半是因為它如下的特點:
A:本身知識很抽象、晦澀難懂,如:閉包、內建物件、DOM。
B:本身內容很多,如函式庫,物件庫就一大堆。
C:混合多種程式設計思想。
它裡面不但牽涉程式導向程式設計思想,又有物件導向程式設計思想,同時,它的物件導向還和別的程式語言(如:C++,JAVA,PHP)不大一樣。
就好像又是新的一樣,讓你對曾經學的物件導向產生了懷疑......
D:辛苦學習後又看似和實際應用脫節。
通常學了很久的js基礎之後,變數、函式、物件你也都略知一二,但一到公司開發專案的時候,卻又難以下手。
因為公司在開發實際專案的時候通常都是直接用它的衍生庫,如:jquery,angular,、boostrap,amaze,layui,ueditor等,而這些庫又多如牛毛,同時還有自己的難點。
讓你都不知道該學哪個好,甚至都懷疑自己學的是不是js了,好像有多個版本的js一樣,總是學不完......
那麼,怎麼才能在js領域內學的輕鬆甚至遊刃有餘呢?我總結了一些實戰意義的js學習經驗:
首先要緊緊抓住它的地位
時刻都不能忘記,否則很容易犯“一葉障目不見泰山”的錯誤。
不要學了很久就知道js是程式語言,就是寫程式碼、而且特點就是亂七八糟就完了,那樣是學不好js的。
要時時抓住它的地位,確切的說是它在整個WEB中的地位:它屬於前端的核心,主要用來操控和重新調整DOM,通過修改DOM結構,從而來達到修改頁面效果的目的。
要用這個中心思想去指導後續的一切js的學習,並且形成條件反射。
要有一條清晰的學習路線
這個只能是過來人給你提供參考了。
我的學習路線如下:
A:js基礎部分,如:定義變數、函式、陣列、字串等的處理,內建函式、內建物件等。
B:js程式導向程式設計思想,封裝出各個函式,試著用這些去做一些常見的小功能,如:選項卡,自定義多選按鈕,自定義播放器,3D幻燈片;
C:js物件導向程式設計思想,試著去封裝一些你自己的物件,提供出有意義的介面出來;
D:學了上述的內容,然後學常用的庫,這裡必須學jquery;
E:學基於Jquery之上的常見外掛,如:bootstrap,Layer,富文字編輯器等。
F:綜合應用上面的多種庫寫實際專案的模板,多寫幾套。
注意學習方法
我的學習方法總結如下:
A:多買幾本國外的js書籍,不要購買那種20天精通之類的書。
否則你是很難學通的,更怕的是:本來你買本好書自學3個月可能學會的,它們硬是能折騰你兩年......
書籍推薦(僅供參考)
《JavaScript DOM程式設計藝術》
《JavaScript權威指南》
《javaScript DOM高階程式設計》
《JavaScript設計模式》
《鋒利的jquery》
爭取把書上的功能都自己練習多次,不是一次。書讀百篇,其義自見。
B:從多角度去學習和領悟
充分調動你所學的東西,從多角度的去做某一功能,如:以前你是從程式導向角度做的,
現在改為從物件導向的角度再來做,或者繼續做成可以直接使用的外掛,提供屬性、方法等出來。爭取讓你做的這個功能逐漸能使用到實際專案中來。
這樣的好處:既綜合應用了你的所學,又能有實際意義。
C:一定不要好高騖遠
不要放過哪怕很小的動手機會,如做一個選項卡。
千萬不要認為有了類似的甚至更好的外掛就不需要自己寫了,知識是別人的,不是你的,你即使會用了也對你的技術技能水平沒有任何提升。
你要多問自己,如果要我來做,我該怎麼做?
D:腳踏實地的同時,也不要脫離實際
多看現在網上已經出現的效果好的功能,讓它去激發你的學習熱情,儘量去學著模擬,調動你的知識去和實際相結合。
E:多寫總結
這種總結不但包括原始碼、顯示效果截圖,還應該很容易犯的錯誤和對應的解決方法以及最後一兩句精簡的結論性語句。
對自己寫的總結不是寫完了就了事了,要多回顧,多改進,多精簡。到做專案的時候,應該是看裡面的一兩句話就知道是講什麼了,而不要再去看長篇大論了。
F:構建知識導圖
這個可以讓你越學越清晰,比如:http://www.phpkhbd.com/sky.html,你可以按你喜歡的任何形式去做,只要自己印象深刻就行。
注意:知識導圖也應該是經常修改、修正,讓它更合理、更清晰。
注意事項
A:充分利用一切手段
很多人總感覺時間緊,沒有大塊的時間學習。我要說你不會學了,你不應該只是抱怨,而是要利用一切手段去學習,要知道,不一定只有看書才叫學習。
當你冷靜的坐在某個地方,思考了一下,總結了一下,你也都叫學習,但凡有靈感,就可以記錄下來,比如:記錄在手機上,等方便了再記錄在專門的地方。這都叫學習。
B:貴在堅持
要沉的下心。沒有一蹴而就的成功,否則那也不是成功,只能叫“僥倖”。
不但要老老實實的把每個功能都試著去實現,而且要精益求精的不斷去修正,這個過程是漫長的,也是考驗一個人是否是人才的標準。
C:注意培養信心
此時的你,不適合一來就看很複雜很炫的網頁效果的原始碼,也不適合一來就學jquery,angular,vue,bootstrap這些東西。
這些內容包含了很多深奧的知識在裡面,在沒有任何基礎的情況下直接學這些,會嚴重打擊你的自信心。
而此時你是弱小的,你需要的是培養信心,而不是反過來,否則結局很可能是“夭折”,離學有所成也就遙遙無期了。
D:多跟學的好的過來人學習
站在巨人的肩上,才能看的更遠。
E:不要浪費在工具的不停選擇上
js的編輯工具很多,如果無從下手,建議使用:sublime,或者使用Hbuilder;很多公司裡的技術人員都用這些,你直接用這個也減少了和別人之間的溝通問題。
我也是用這個,感覺很好。
總結
感覺js學起來“雜而亂”的原因是因為你太“聰明”了,一開始就管的太寬,利害得失也計算的太精細。
要求太完美則心裡承受能力下降,很容易出現“障”。此時,你應該“笨”一些,不要考利那麼長遠,“傻人有傻福”,只要做好今天就夠了。
一些不合理的學習方法和心態也讓你迷失了自我:如:心浮氣躁、眼高手低、好高騖遠,這些都會讓你在“亂七八糟”的js面前深陷迷霧、不能自拔。
此時,你應該重新定位自己的位置,重新去認識js,放下包袱,方能輕鬆上陣。把杯子先倒空,才能灌新水......
其實,js是前端的核心。影響越來越深的網際網路+會渴求越來越多的js人才,只有經歷過真正刻骨銘心的學習經歷,才能造就出贏得未來的真正精英。
相關文章
- 輕鬆學習 JavaScript(8):JavaScript 中的類JavaScript
- 輕鬆學習 JavaScript(6):JavaScript 箭頭函式JavaScript函式
- 輕鬆學習 JavaScript——第 8 部分:JavaScript 中的類JavaScript
- 輕鬆學習 JavaScript——第 6 部分:JavaScript 箭頭函式JavaScript函式
- 輕鬆學習 JavaScript(1):瞭解 let 語句JavaScript
- 輕鬆學習 JavaScript(5):簡化函式提升JavaScript函式
- 輕鬆學習 JavaScript (4):函式中的 arguments 物件JavaScript函式物件
- 輕鬆學習 JavaScript(7):物件屬性描述符JavaScript物件
- 輕鬆學習 JavaScript——第 1 部分:瞭解 let 語句JavaScript
- 輕鬆學習 JavaScript (2):函式中的 Rest 引數JavaScript函式REST
- 輕鬆學習 JavaScript——第 5 部分:簡化函式提升JavaScript函式
- 輕鬆學習 JavaScript——第 7 部分:物件屬性描述符JavaScript物件
- 輕鬆學習 JavaScript——第 4 部分:函式中的 arguments 物件JavaScript函式物件
- 輕鬆學習 JavaScript (3):函式中的預設引數JavaScript函式
- 如何輕鬆學習 Kubernetes?
- 輕鬆學習 JavaScript——第 2 部分:函式中的 Rest 引數JavaScript函式REST
- Yii2 - Active Record 輕鬆學習
- 輕鬆學習 JavaScript——第 3 部分:函式中的預設引數JavaScript函式
- 如何輕鬆學習Python資料分析?Python
- 萬字長文,帶你輕鬆學習 SparkSpark
- AI 學習之路——輕鬆初探 Python 篇(三)AIPython
- AI 學習之路——輕鬆初探 Python 篇(一)AIPython
- 利用同構JavaScript輕鬆解析URLJavaScript
- 僅1個例子輕鬆學習正規表示式
- 31 天,從淺到深輕鬆學習 KotlinKotlin
- [譯] 理解非同步 JavaScript-學習JavaScript是怎麼工作的非同步JavaScript
- Word流程圖怎麼畫?如何輕鬆繪製流程圖流程圖
- 專案管理輕鬆學(轉)專案管理
- Vue學習路徑-輕鬆從基礎到實戰Vue
- 零基礎輕鬆入門——JAVA基礎學習Java
- 輕鬆學習之一--Objective-C訊息轉發Object
- XML輕鬆學習手冊(3)XML概念之一(轉)XML
- XML輕鬆學習手冊(6)XML例項解析(轉)XML
- 怎麼學習
- 怎麼學習!
- 失眠怎麼快速入睡? 八款智慧裝置輕鬆解決
- XML輕鬆學習手冊(5)XML語法之二(轉)XML
- XML輕鬆學習手冊(5)XML語法之四(轉)XML