js給初學者的印象老是那麼的「雜而亂」,相信不少初學者都在找輕鬆學習js的途徑。我試着總結本身學習多年js的經驗,但願能給後來的學習者探索出一條「輕鬆學習js之路」。js給人那種感受的緣由多半是由於它以下的特色:php
A:自己知識很抽象、晦澀難懂,如:閉包、內置對象、DOM。html
B:自己內容不少,如函數庫、對象庫就一大堆。前端
C:混合多種編程思想。它裏面不但牽涉面向過程編程思想,又有面向對象編程思想,同時,它的面向對象還和別的編程語言(如:C++,JAVA,PHP)不大同樣。就好像又是新的同樣,讓你對曾經學的面向對象產生了懷疑......vue
D:辛苦學習後又看似和實際應用脫節。一般學了好久的js基礎以後,變量、函數、對象你也都略知一二,但一到公司開發項目的時候,卻又難如下手。由於公司在開發實際項目的時候一般都是直接用它的衍生庫,如:jquery,angular,boostrap,amaze,layui,ueditor等,而這些庫又多如牛毛,同時還有本身的難點。讓你都不知道該學哪一個好,甚至都懷疑本身學的是否是js了,好像有多個版本的js同樣,老是學不完......java
那麼,怎麼才能在js領域內學的輕鬆甚至遊刃有餘呢?我總結了一些實戰意義的js學習經驗:jquery
首先要牢牢抓住它的地位編程
時刻都不能忘記,不然很容易犯「一葉障目不見泰山」的錯誤。不要學了好久就知道js是編程語言,就是寫代碼,並且特色就是亂七八糟就完了,那樣是學很差js的。要時時抓住它的地位,確切的說是它在整個Web中的地位:它屬於前端的核心,主要用來操控和從新調整DOM,經過修改DOM結構,從而來達到修改頁面效果的目的。要用這個中心思想去指導後續的一切js的學習,而且造成條件反射。bootstrap
要有一條清晰的學習路線設計模式
這個只能是過來人給你提供參考了。個人學習路線以下:數組
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人才,只有經歷過真正刻骨銘心的學習經歷,才能造就出贏得將來的真正精英。