javascript水平提升

來源:互聯網
上載者:User

標籤:css   編程   js代碼   多個   提示   細節   strong   view   瓶頸   

學習javascript分幾個階段,沒入門,入門初學者,中級水平,進階水平,ppt水平。

1,沒入門的如何學習?

我當初是先學jquery,有css和html基礎,有css基礎看jq的文法很簡單,就是選擇符,jq的api懂高中英語就夠了,猜也猜的出來意思,然後下載基本jq的chm手冊,對著挨個看一遍。(這個挨個看一遍的意思就是一行一句的逐個看一遍,看不懂的別死扣,先看完再說)。

看完一遍之後,心中有數,哦,原來有個ajax函數可以訪問網路資源,有個success可以寫回調方法,逾時怎麼辦?幾個一起同時發怎麼辦?不管了,用到再說。哦,原來有個find函數可以尋找dom節點,哦,原來有個serialize函數可以序列化表單值,哦,原來有個toggle函數可以做切換用,哦,有個fn可以掛著寫外掛程式用,哦,切換cls這樣做就行了,哦,請求json資料這樣配置參數就可以了。

做到瞭解,你就成功了,用到的時候知道jq能幹什麼,不能幹什麼,幹什麼的時候去看哪一章,再去仔細研究,做東西開始有點慢,做起來幾個東西之後就手熟了。

同理,我學習yui2,kissy,mootools,nodejs,react,ng,甚至swift部分也是這樣對著手冊來的,反覆幾遍就可以了。

入門的意思就是概括一下,我知道有哪些api能幹什麼,具體怎麼幹,用的時候再說。

2,入門初學者。

我看完手冊了,也寫了幾個小項目了(切換切換class,套幾個jq外掛程式,ajax取完資料又html放到指定位置了類似這種需求)。我感覺我可牛逼啦,終於會寫互動js啦,感覺什麼都不怕啦,其實就是剛入門而已。

我們來看看入門初學者怎麼提升js編程技巧,個人經驗,切勿照搬模仿,我們會使用架構工具庫完成簡單需求的同時,我們無法理解一些複雜功能的開發原理。比如一個簡單的放大鏡特效,一個裁切頭像大小的功能,一個輪播組件,一個搜尋智能提示,一個at圈人功能,甚至一個回到頂部的fixed按鈕,或者輸入框計數,表單驗證組件,動態表格,長串連聊天功能,浮出層,移動端的swiper,動畫函數,選取器,字串模板,富文字編輯器?太多啦?一點也不多,我還沒說全呢,幾乎所有你在網頁裡見到的一些現成互動,其實有個學名,慢慢看,挨個寫一遍,兩遍,三遍,先不談封裝成組件,api是否優美,就說能不能寫出來,剛入門的人一定say no。

說白了,經驗的積累是前端開發非常重要的一條,有些東西你沒寫過你還真就是不會寫,或者你知道怎麼寫,但是你沒寫過也別輕易說自己會,因為相容問題,很多東西細節上你還是沒有體會。所以,我第一次工作寫一個頭像裁切功能,我想了好多個夜晚,也沒弄明白原理,查了好多文章,又寫了許多demo,最後還是做了出來,但是會有一些極限情況下的bug?一個組件一個組件的擼,一遍又一遍的擼,是初學者最好的提升方法。

等你做到基本網頁裡任何一個功能看一眼就知道怎麼寫或者都親自寫過的時候(不是demo層級,是上線層級),你就已經不是初學者了,大概這個速度快也要1年左右時間,這也就是為什麼一些功能招聘都要3年以上的原因了,經驗包的積累不是看幾本書就搞的定的。

3,中級水平。

你發現你在編寫javascript功能時已經沒什麼好怕的東西了,也就是說,衡量一個需求時,你從來不會說no,而只是預估時間的時候,基本就已經達到中級水平了,這個時候你明確的知道自己在寫的是什麼,也能讀懂別人寫的是什麼,而且擁有了一些自己平時積累所寫得外掛程式,組件,並封裝的好好的,那麼,就完美了嗎?你發現你遇到了瓶頸,不知道如何提高自己了,開啟了知乎,可能問下了這個問題:《如何提高javascript編程進階技巧》

這個時候你需要往進階一步了,你可能熟練使用jq或者某一架構,基於某些架構二次開發了非常炫酷的外掛程式組件,並且瞭解了設計模式,一些高大上的名詞,業務需求無法滿足你,自動化工具grunt和gulp用的妥妥的,總之,很多事情在你眼裡自己無所不能,哎呀我操,為什麼呢,我是不是凱瑞了全場?

這個時候,你需要的是開始思考,從最開頭開始擼你的東西了,比如我們往往喜歡使用jq或者zepto,我們的外掛程式往往是基於他們或者說我們的經驗都是在某一個領域架構下實現的,回過頭來看,這些東西真的好嗎,他們是如何?的?為什麼要這樣設計,一個超過5000行的抽象類別怎麼組織,設計模式你真的理解嗎,js的奇淫技巧你會幾樣,有沒有見過一些根本看不懂的js代碼,那些大牛們到底在說什麼呀,es6的api到底有多少個呀,那些新手都看得懂jq(真的懂?),為毛自己寫不出來?grunt到底是怎麼啟動並執行啊,v8的源碼是什麼樣的啊,測試案例是什麼鬼啊?

很多時候,我在讀一個庫的源碼時,在看devDependencies的時候,意外又發現了數個不懂的東西,有時候見到一段代碼會會心一笑,有時候又會大喊臥槽,從感覺自己什麼都知道,到感覺自己什麼都不知道,可能就是你突破瓶頸的時候了。

4,進階水平。

我們公司也有進階工程師的技術序列要求,我剛好評過,基本考察點都不在你如何?一個技術細節了,而是考察你如何從0到1的這個過程,以及可能涉及到2,3,4的預判能力。還有就是在業界都在傳一些東西很好很強大的時候,你已經可以把他轉換為實際的生產力了,能發現一些好的東西裡面不足的地方,並能自己改進,永遠不滿足,不崇拜大牛,因為自己就是大牛。說白了,你寫的東西要能讓很多人解決一些經常解決不了的問題,比如怎麼能讓你的系統更快,依賴更少,代碼更小,開發起來更爽,新人如何更好的上手,api設計的美不美,實現的每一行代碼都精雕細琢,review別人得東西總能提出自己的看法,總之,Legendary啦!

5,可能你需要多看看《超級演說家》。

javascript水平提升

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.