如何才能正確有效的學(xué)習(xí)js
“前端怎么學(xué)”應(yīng)該因人而異,別人的方法未必適合自己。不過(guò)為了幫助廣大小伙伴更好的學(xué)習(xí)js,以下是學(xué)習(xí)啦小編分享給大家的正確有效的學(xué)習(xí)js的方法,希望可以幫到你!
正確有效的學(xué)習(xí)js的方法一
看書(shū)有啥好處?
好處應(yīng)該是不言而明的,書(shū)看多了,基礎(chǔ)會(huì)逐漸夯實(shí)起來(lái)??炊嗔?,自己的判斷力,自然就上來(lái)了??磩e人的文章,就能很快判斷出,對(duì)方每塊兒講得對(duì)不對(duì),哪塊兒又是自己不清楚的,模棱兩可的。當(dāng)然也為看源碼,分析源碼提供了基礎(chǔ)。
10本書(shū)讀2遍的好處,應(yīng)該大于一本書(shū)讀20遍。10本書(shū)的交集,那就是基礎(chǔ)知識(shí)的核心,而并集那就是所有的知識(shí)。好書(shū)當(dāng)然要多讀,反復(fù)讀。但是只讀一本是不行的。因?yàn)槊勘緯?shū)的側(cè)重點(diǎn)都不一樣。從不同的側(cè)面,去理解一個(gè)知識(shí)點(diǎn),是很有意義的。
所以特別佩服印度人,他跟你講英文,你一個(gè)詞語(yǔ)沒(méi)聽(tīng)懂,他會(huì)蹦出n個(gè)同一意思的單詞,你聽(tīng)懂一個(gè),就ok了??磿?shū)也是這樣的,某一塊講得不透徹,不用擔(dān)心,其他書(shū)籍可以幫助你來(lái)了解。
正確有效的學(xué)習(xí)js的方法二
書(shū)籍推薦
個(gè)人覺(jué)得不錯(cuò)的,沒(méi)事可以翻翻的。書(shū)籍如下:
>《javascript面向?qū)ο缶幊讨改稀罚L(fēng)格輕松易懂,比較適合初學(xué)者,原型那塊兒講得透徹,12種繼承方式呢。
>《js權(quán)威指南》、《js高級(jí)程序設(shè)計(jì)》,這兩本書(shū)經(jīng)典是經(jīng)典,但是太厚,適合把其中任意一章都當(dāng)成一本書(shū)來(lái)讀。洋洋灑灑,很難一口氣看完。比較適合當(dāng)做參考書(shū)。
>《你不知道的javascript》狙擊js核心細(xì)節(jié),閉包、原型、this講得都還清楚。目前《中冊(cè)》也出了,還在看。
>《js設(shè)計(jì)模式與開(kāi)發(fā)實(shí)踐》js設(shè)計(jì)模式也是要學(xué)的,此書(shū)把js的設(shè)計(jì)模式講得非常清晰,一點(diǎn)不晦澀,看起來(lái)沒(méi)多少難度。
>《正則指引》,分析源碼時(shí),如果正則表達(dá)式不懂,沒(méi)法進(jìn)行下去的。此書(shū)相對(duì)來(lái)說(shuō)講得比較清晰。
>《基于MVC的JavaScript Web富應(yīng)用開(kāi)發(fā)》,看完后,基本能寫(xiě)出自己的mvc框架了。是本好書(shū)。
>《javascript函數(shù)式編程》,js是一門(mén)函數(shù)式語(yǔ)言,此書(shū)是函數(shù)式編程一個(gè)入門(mén),函數(shù)是一等公民那是非常重要的。
>《js忍者秘籍》,jq作者寫(xiě)的,沒(méi)有傳說(shuō)中的那么難讀,話(huà)說(shuō)就算你看完并理解所有知識(shí)點(diǎn),也不會(huì)達(dá)到世界高手級(jí)別的。因?yàn)槟氵€沒(méi)有做到隨心所欲。
>《javascript框架設(shè)計(jì)》,如果初看此書(shū),會(huì)覺(jué)得此書(shū)有羅列代碼之嫌。在我看來(lái),此書(shū)講究的是框架的全局觀。以上書(shū)籍是我認(rèn)為是成就高手之路上必須看的,也需要反復(fù)看。
css相關(guān)的書(shū)籍,說(shuō)實(shí)話(huà)我看得比較少,總共有六七本吧。有兩本必須推薦一下:
>《css權(quán)威指南》,css基礎(chǔ)知識(shí)點(diǎn)那是講得非常清楚的。什么層疊優(yōu)先級(jí)、line-height啥的。不是隨便一本書(shū)都敢叫“權(quán)威指南”的。
>《css揭秘》,此書(shū)我也是不斷的看,此書(shū)才不屑于全面講css3各屬性呢。css規(guī)范文檔能講的,它只會(huì)講你最不在意的。此書(shū)解決的47問(wèn)題,解決思路和解決方案同等重要,很有啟發(fā)性。以上各書(shū)你都可以不買(mǎi),至少買(mǎi)本此書(shū)吧。
正確有效的學(xué)習(xí)js的方法三
怎么看書(shū)?
想必很多同學(xué),都想看書(shū),但是很難看下去。文字部分相對(duì)來(lái)說(shuō)還能看看,一遇到代碼,頭皮就發(fā)麻了。此問(wèn)題一開(kāi)始時(shí)我也遇到的。
說(shuō)一個(gè)學(xué)習(xí)理論。比如說(shuō)學(xué)英語(yǔ),有個(gè)開(kāi)水理論。詞匯量必須達(dá)到6000才行,如果沒(méi)達(dá)到,英文水平不會(huì)上去的,這跟燒開(kāi)水一樣,沒(méi)事燒燒,放著涼涼,從來(lái)沒(méi)燒到100度,那么此水是永遠(yuǎn)不能喝的。一旦煮沸過(guò),就可以隨時(shí)喝了。
20本書(shū)你看不下去,說(shuō)明什么呢?任何一本書(shū),你都沒(méi)看完過(guò)。熟悉的,永遠(yuǎn)只是前三章。別笑,我原先也是這樣的。
那么現(xiàn)在的問(wèn)題是,怎么把一本書(shū)看完呢?很簡(jiǎn)單,敲。《基于MVC的JavaScript Web富應(yīng)用開(kāi)發(fā)》這本書(shū)我看時(shí),就是這樣,終于有一天,我下定決心要把此書(shū)從頭到尾敲一遍。文字加代碼都敲,然后就一章一章得看完了。代碼敲一遍后,你會(huì)發(fā)現(xiàn),沒(méi)之前看起來(lái)的那么難。
如果你屬于一看書(shū)就犯困那種同學(xué)。強(qiáng)烈建議你把《javascript面向?qū)ο缶幊讨改稀反藭?shū)從頭到尾敲一遍。堅(jiān)持看完一本書(shū)后,信心就上來(lái)了。先保證看完一本再說(shuō),看完3本后,基本應(yīng)該能做到幾天就能看一本了。萬(wàn)事開(kāi)頭難,加油吧。
正確有效的學(xué)習(xí)js的方法四
看書(shū)的層次問(wèn)題
書(shū)看完后,要自己總結(jié),要與其他書(shū)籍對(duì)比看。有同學(xué)同時(shí)對(duì)比著看《權(quán)威指南》和《高設(shè)》來(lái)的。隨便拿出個(gè)知識(shí)點(diǎn),你都能閉著眼睛說(shuō)得頭頭是道,說(shuō)明水平夠了。
下一塊就是源碼的學(xué)習(xí)了??纯蚣茉创a之前,想說(shuō)一件事情:dom的api不懂,沒(méi)問(wèn)題,你可以百度。
但是正則一定要先研究研究,不然大多數(shù)人去嘗試分析源碼時(shí),遇到的挫折都在于此。
怎么去閱讀源碼呢?敲,照著敲。
有哪些代碼值得去敲呢?優(yōu)秀框架或者庫(kù)的源碼都值得你去敲。但是拿jq來(lái)敲,來(lái)入門(mén),那不行的。原因:太他么長(zhǎng)了。八九千行呢!!
個(gè)人覺(jué)得underscore.js庫(kù)是不錯(cuò)的第一個(gè)選擇。原因都是工具方法,敲完以后自己的水平應(yīng)該略有小成吧。其實(shí)有一些api的實(shí)現(xiàn),你要把它當(dāng)成getElementById一樣,深深的印在腦海里。比如extend方法,必須張口就來(lái)。敲完underscore庫(kù)后,可以考慮去看看《javascript函數(shù)式編程》這本書(shū)了。
jq的源碼不好敲。那么zepto的源碼比較少1800多行,敲一天應(yīng)該敲完了。敲幾遍后,把所有不懂的地方,都百度清楚,然后就可以寫(xiě)自己的類(lèi)jq的庫(kù)了。然后就可以作為一項(xiàng)技能寫(xiě)進(jìn)自己的簡(jiǎn)歷里。比如“創(chuàng)建過(guò)自己的jquery庫(kù)”。當(dāng)然敲的過(guò)程,還能幫助自己對(duì)jq的api認(rèn)識(shí)。
然后是backbone.js,因?yàn)榇丝蚣苁且灶?lèi)jq和underscore為基礎(chǔ)的mvc框架。代碼也沒(méi)多少行。敲吧。spine.js與backbone類(lèi)似??梢栽谇闷渲?,先看看那本《基于MVC的JavaScript Web富應(yīng)用開(kāi)發(fā)》。希望你的簡(jiǎn)歷可以添加這么一筆,“創(chuàng)建過(guò)自己的mvc框架”。
其他的,我也敲過(guò)一些。包括jq.validate.js,包括一些插件。如果你愿意的話(huà),bootstrap你可以去敲敲啊。源碼挺多的,可以按插件逐個(gè)來(lái)敲。分析明白了,輪播、分頁(yè)、下拉框等等的插件那還不是分分鐘隨手就寫(xiě)一個(gè)了。最起碼看看人家api接口是怎么設(shè)計(jì)的也是極好的。話(huà)說(shuō)個(gè)人在閱讀其css代碼中,也學(xué)到了不少東西。說(shuō)到插件,有兩個(gè)必須提提,一個(gè)是表格插件,一個(gè)是樹(shù)。都敲完,簡(jiǎn)歷里可以這么寫(xiě)上,“創(chuàng)建過(guò)自己的UI框架”。
當(dāng)然了,你也可以敲你喜歡的框架代碼,重要的是明白其實(shí)現(xiàn)原理,最好理解其為啥那么設(shè)計(jì),如果對(duì)設(shè)計(jì)模式比較熟悉的話(huà),會(huì)經(jīng)常發(fā)現(xiàn)原來(lái)是這么回事。
照著敲只是分析源碼的入門(mén),用途也是為了學(xué)習(xí),最后能用在自己的項(xiàng)目中,那是才是正道。就算沒(méi)啥用,也是打發(fā)時(shí)間的好方式,比看電視劇強(qiáng)多了。我閑著無(wú)聊時(shí),就背著敲underscore源碼。最后說(shuō)句,如果你簡(jiǎn)歷上能如期寫(xiě)上那幾句話(huà)后,必須是大神。加油吧。
猜你喜歡:
2.如何系統(tǒng)地學(xué)習(xí)javascript知識(shí)