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