怎么輕松學習JavaScript
js給初學者的印象總是那么的“雜而亂”,相信很多初學者都在找輕松學習js的途徑。我試著總結自己學習多年js的經驗,希望能給后來的學習者探索出一條“輕松學習js之路”。js給人那種感覺的原因多半是因為它如下的特點:
A:本身知識很抽象、晦澀難懂,如:閉包、內置對象、DOM。
B:本身內容很多,如函數庫、對象庫就一大堆。
C:混合多種編程思想。它里面不但牽涉面向過程編程思想,又有面向對象編程思想,同時,它的面向對象還和別的編程語言(如:C++,JAVA,PHP)不大一樣。就好像又是新的一樣,讓你對曾經學的面向對象產生了懷疑......
D:辛苦學習后又看似和實際應用脫節(jié)。通常學了很久的js基礎之后,變量、函數、對象你也都略知一二,但一到公司開發(fā)項目的時候,卻又難以下手。因為公司在開發(fā)實際項目的時候通常都是直接用它的衍生庫,如:jquery,angular,boostrap,amaze,layui,ueditor等,而這些庫又多如牛毛,同時還有自己的難點。讓你都不知道該學哪個好,甚至都懷疑自己學的是不是js了,好像有多個版本的js一樣,總是學不完......
那么,怎么才能在js領域內學的輕松甚至游刃有余呢?我總結了一些實戰(zhàn)意義的js學習經驗:
首先要緊緊抓住它的地位
時刻都不能忘記,否則很容易犯“一葉障目不見泰山”的錯誤。不要學了很久就知道js是編程語言,就是寫代碼,而且特點就是亂七八糟就完了,那樣是學不好js的。要時時抓住它的地位,確切的說是它在整個Web中的地位:它屬于前端的核心,主要用來操控和重新調整DOM,通過修改DOM結構,從而來達到修改頁面效果的目的。要用這個中心思想去指導后續(xù)的一切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:從多角度去學習和領悟
充分調動你所學的東西,從多角度去做某一功能,如:以前你是從面向過程角度做的,現(xiàn)在改為從面向對象的角度再來做,或者繼續(xù)做成可以直接使用的插件,提供屬性、方法等出來。爭取讓你做的這個功能逐漸能使用到實際項目中來。這樣的好處:既綜合應用了你的所學,又能有實際意義。
C:一定不要好高騖遠
不要放過哪怕很小的動手機會,如做一個選項卡。千萬不要認為有了類似的甚至更好的插件就不需要自己寫了,知識是別人的,不是你的,你即使會用了也對你的技術技能水平沒有任何提升。你要多問自己,如果要我來做,我該怎么做?
D:腳踏實地的同時,也不要脫離實際
多看現(xiàn)在網上已經出現(xiàn)的效果好的功能,讓它去激發(fā)你的學習熱情,盡量去學著模擬,調動你的知識去和實際相結合。
E:多寫總結
這種總結不但包括源代碼、顯示效果截圖,還應該很容易犯的錯誤和對應的解決方法以及最后一兩句精簡的結論性語句。對自己寫的總結不是寫完了就了事了,要多回顧、多改進、多精簡。到做項目的時候,應該是看里面的一兩句話就知道是講什么了,而不要再去看長篇大論了。
F:構建知識導圖
這個可以讓你越學越清晰,比如:http://www.phpkhbd.com/sky.html,你可以按你喜歡的任何形式去做,只要自己印象深刻就行。
注意:知識導圖也應該是經常修改、修正,讓它更合理、更清晰。
注意事項
A:充分利用一切手段
很多人總感覺時間緊,沒有大塊的時間學習。我要說你不會學了,你不應該只是抱怨,而是要利用一切手段去學習,要知道,不一定只有看書才叫學習。當你冷靜的坐在某個地方,思考了一下,總結了一下,你也都叫學習,但凡有靈感,就可以記錄下來,比如:記錄在手機上,等方便了再記錄在專門的地方。這都叫學習。
B:貴在堅持
要沉的下心。沒有一蹴而就的成功,否則那也不是成功,只能叫“僥幸”。不但要老老實實的把每個功能都試著去實現(xiàn),而且要精益求精地不斷去修正,這個過程是漫長的,也是考驗一個人是否是人才的標準。
C:注意培養(yǎng)信心
此時的你,不適合一來就看很復雜很炫的網頁效果的源代碼,也不適合一來就學jquery,angular,vue,bootstrap這些東西。這些內容包含了很多深奧的知識在里面,在沒有任何基礎的情況下直接學這些,會嚴重打擊你的自信心。而此時你是弱小的,你需要的是培養(yǎng)信心,而不是反過來,否則結局很可能是“夭折”,離學有所成也就遙遙無期了。
D:多跟學的好的過來人學習
站在巨人的肩上,才能看的更遠。
E:不要浪費在工具的不停選擇上
js的編輯工具很多,如果無從下手,建議使用:sublime,或者使用Hbuilder。很多公司里的技術人員都用這些,你直接用這個也減少了和別人之間的溝通問題。我也是用這個,感覺很好。
總結
感覺js學起來“雜而亂”的原因是因為你太“聰明”了,一開始就管的太寬,利害得失也計算的太精細。要求太完美則心里承受能力下降,很容易出現(xiàn)“障”。此時,你應該“笨”一些,不要考慮那么長遠,“傻人有傻福”,只要做好今天就夠了。一些不合理的學習方法和心態(tài)也讓你迷失了自我,如:心浮氣躁、眼高手低、好高騖遠,這些都會讓你在“亂七八糟”的js面前深陷迷霧、不能自拔。此時,你應該重新定位自己的位置,重新去認識js,放下包袱,方能輕松上陣。把杯子先倒空,才能灌新水......其實,js是前端的核心。影響越來越深的互聯(lián)網+會渴求越來越多的js人才,只有經歷過真正刻骨銘心的學習經歷,才能造就出贏得未來的真正精英。