如何學好javascript

今天逛論壇時看到有朋友問,是否有專門教Javascript的學校,這裏想一想把本身的一點建議和本身3年來的前端Javascript開發的經驗跟你們分享下,也給出幾本我的認爲不錯的書來作爲你們學習的參考資料。固然只是我的的經驗,有什麼不對的也請高手見諒和指正。關於到培訓學校學習的忠告:別 說如今沒有這樣的學校,就是有專門的學校也不要去,由於不會有好的老師的。不要浪費你本身(極可能是你父母)的錢和時間。趁早死了這個念頭。關於培訓學校 的這個我想我要比通常的朋友更有發言權,由於我本人幹英語培訓將近2年,我很清楚培訓市場的狀況,你很難碰到一個好的老師。英語可能還好些, 畢竟英語說得好的老師還比較多,長期跟老外泡在一塊兒,確實對口語能力的提升很顯著,可是代價是很昂貴的。而你如今要學的是Javascript,呵呵,好 的前端工程師可很少!個人我的觀點,有資格和有能力的教好Javascript的老師,必定要是個好的有着豐富的前端開發經驗的前端工程師。大學的老師, 教授可能他們中不多有 人符合這個要求,而好的前端工程師,都忙着本身的工做去了。剩下的有時間去教Javascript的人,呵呵,就很少說了。這裏也發點牢騷,咱們在大學校 園裏學習的東西,你學的時候根本不知道這個東西有什麼意義,你本身不去鑽研,老師他是不會告訴你的。在培訓學校,呵呵,也差很少。若是不是一個好的前端工 程師,他很難告訴你爲何咱們如今提倡使用閉包把之前的全局變量放到閉包中做爲閉包函數的局部變量?他也很難對 Javascript變量做用域的相關知識跟你講透徹。在Javascript裏可以造成scope(做用域)的東西有哪些?爲何說全局變量是魔鬼?閉 包又是怎麼產生的做用域?等等這樣很基礎,但很重要的知識的意義,他不清楚,將給你聽,讓你明白這些知識和他們的意義就更困難。呵呵,因此個人建議,想學 Javascript,仍是多跟你的身邊認識的朋友,特別是那些從事前端開發的工程師多交流和學習。本身要多鑽研。呵呵,不認識 前端工程師,就到酷站資源2010來多看看(www.zoolc.com,記住!這可不是廣告哦!),把你不清楚的問題提出來,可是我這裏要說一個好的學 習習慣。何時提問?何時提問?這個也是問題嗎?對的,不少人,也是不少在校學生的一個很差的學習習慣,一有問題就問別人請求幫助。我我的這個是個 壞習慣。難道問問題也是 個壞習慣?對的,我我的以爲,你問問題尋求別人的幫助,應該是在你本身已經動腦經思考,經過各類途徑查閱相關資料都沒法獲取問題的最終解決辦法的狀況下再 來提問?這樣你已經對你要解決的問題作過研究,有必定了解,你能夠更詳細的告訴別人你想要的答案大概是什麼樣的,或者說你能夠把你想描述的問題講的更清 楚。這樣別人來解決你的問題的時候,也能夠更快速的做出解答。我想你學起來,對這個問題的理解也會更深入些。好了,好像扯得有些遠了。來談談怎麼學習 Javascript吧!先給你們潑點冷水,我想告訴你的是:Javascript要比其餘的開發語言都難學好!爲何?由於就目前來講,你們(國內甚至 是國外的程序員)廣泛對Javascript這門編程語言(請容許我這麼說)瞭解和研究得不夠深,至少不像你們對 JAVA,C#等這樣的語言瞭解的和研究得那麼透。因此這個就引發了另外一個問題,如今市面上Javascript的書籍對Javascript這門語言的 講解都不夠深刻和全面。固然是相對JAVA,C#這樣的語言來講。因此這就致使了,學Javascript很困難。固然學任何一門編程語言,特別是學好, 學精都不容易。不過也有好的消息,就是如今你們對Javascript的重視和更深刻的研究,如今Javascript書籍裏講解的內容也要比4年前質量 高出太多了,可 以這麼說,你如今開始Javascript正是時候哦!呵呵!因此這裏也給你們一個經驗,買Javascript的書,最好不要買4年前,也就是2005 年前出版的。最好買近兩年出版的書。說到這裏,我想說說一個現象,隨這你們近幾年對Javascript的重視和研究,主要是不少傳統的程序員開始學習和 研究Javascript,他們把面 向對象編程的思想帶入到Javascript的前端開發,極大的促進了Javascript的推廣和發展。這點要十分感謝他們。也許是處於這些程序員的傳 統的開發的思想的影響,如今咱們的Javascript庫如雨後春筍般的出現。呵呵!JAVA有JAVA的庫和各類各樣的框架,C#也是模仿JAVA,也 是有着豐富的開發庫。這些庫爲咱們的開發帶來了極大的方便,這是個很不錯的事 情。因此這些傳統的程序員在從事前端的開發的時候,也爲本身編寫了庫。咱們很熟悉的就有prototype,jQuery,YUI,Ext等等,我就不一 一列舉了。固然這些庫的出現也爲咱們的前端開發帶來了極大的方便,可是事情都有兩面性的,在這些庫的出現後,在給咱們的開發帶來便利的同時,也讓咱們的很 多朋友產生對庫的依賴,可能嚴重點的,沒有庫了,給他個記事本(咱們姑且不提開發效率)可能就不知道如何下手了。若是仔細想一想,這個也是很可怕的事情。爲 什麼?由於你們都再也不去花心思去研究Javascript底層的知識,只是一味的在這些庫的幫助下,構建那些炫目 的特效(還好,這些庫都是免費的)。或者乾脆直接用別人寫好的插件。都不知道萬一這些庫要是開始收費(只是瞎想一想),怎麼辦?還有就是這些庫好比有別有用 心的人,在中加點什麼惡意的東西,我想很難有人會從頭到位把一個庫研究個透。你怎麼辦?最嚴重的就是編程能力的降低,但給人的感受是入門的門檻更底了。不 要被「The Write Less, Do More」這樣的廣告迷惑了,由於在你加載這個庫的同時,別忘了「Size of your web page is much bigger, or say the size is HUGE". 所 以當你們使用這些庫的時候,我但願你們不只僅是使用者,也要用心去閱讀這些庫的代碼,從中學習。收穫會很大的,並且說不定,你會發現可個改善地方,甚至 是有錯誤的地方。這個是頗有可能的。還有就是我剛纔提到的,這些庫的開發者不少都是從傳統的程序員轉型過來,或者說是由於開發須要而開始學習 Javascript,極可能會有錯誤。或者說受之前學習語言的影響,寫的程序更像是在寫其餘的語言,而不是寫Javascript,執行效率並不高。所 以不要迷信庫。問幾個問題,你清楚jQuery是怎麼實現CSS(3)和XML的XPath選擇器的嗎?jQuery又是怎麼實現eventHandle 的?怎麼處理其中的瀏覽器兼容性問題的?若是你還不明白我提的問題,那麼請仔細看看jQuery是怎麼實現的吧!若是你還讀不懂它,仍是多看看我要給你介 紹的Javascript的書吧,瞭解 Javascript的底層和基礎的知識。讓本身能讀懂jQuery,讓本身不要jQuery也能實現Dom的拖動,讓本身也能寫出本身的庫。固然這話我 說得太大了。不過只要你是真正研究Javascript和相關的知識,你也能夠作到的。繞了這麼大一圈,如今讓咱們正式開始吧,來介紹幾本學習 Javascript的書吧。(如下介紹的書都是本人本身購買閱讀過的,對了我不崇洋媚外,一條真理:不要買中國人寫的Javascript書)入門的書:《Javascript 高級編程技術》:不要被「高級」這兩個字嚇到,這個書實際上是本很不錯的入門的書,由於這本書也很詳細的介紹了javascript 的所有內置對象和語法,而且介紹了面向對象的思想,DOM、BOM的知識,正則表達式,高級的DOM處理。Ajax的知識,仍是很全面的。並且我的認爲這 本書對基礎知識的介紹並不比其餘的同類書遜色。比起《Javascript權威指南》(我當時買點的是第4版),我以爲更詳細些和更清楚些。在《指南》的 第4版中,我以爲那本書中講的東西有點混亂。感受一個知識點尚未講清楚,就給你一個什麼類,看得不明不白的。由於沒有看《指南》的第五版,因此這裏不推 薦給你們。並且《高級編程》這本書要比《指南》便宜很多。《高級編程》中也提出了採用功能(future)探測來取代瀏覽器版本探測來處理腳本兼容性的處 理。我的以爲《指南》有的,這本書也都說了。還有我前面提到的,這本書的做者是YAHOO的資深的前端工程師,你能夠在他的網站下載到相關的代碼。 《Javascript DOM 編程藝術》:我我的的感受是學習DOM編程的經典入門書籍,做者是webstandards.org的創始人之一,書中以淺顯易懂的語言,教你一步一步的 來說解DOM編程,一點點地提高網站的用戶體驗。書中一直強調不唐突的腳本開發,網站要向後兼容,強調網站的可訪問性。這個也是你們在作前端開發時應當努 力追求的,也是必需要有的開發指導思想。惋惜不少的後臺開發的程序員,根本沒有這個概念,因此你在開發的時候,必定要給你的程序員多洗腦。呵呵!《CSS 權威指南》第三版:作前端開發,你必需要了解CSS,書中對CSS2的介紹很詳細了。仔細的看吧,我每次看的時候,有會有新的收穫。
《網站重構》、《CSS網站佈局實錄》(惟一一本推薦的國人寫的書):看完了,你會知道爲何學WEB標準?你會知道前端工程師的工做很重要。提升階段:《Javascript DOM 高級編程》:這本書裏不光詳細的介紹的DOM編程的技巧,也講了使用面向對象編程的方法,使用命名空間來管理書中所寫的開發庫,在不斷的學習中,你的我的 DOM Javascript庫也不斷的充實。呵呵,就像我前面說的,你能夠寫出本身的庫了。固然書中的代碼比較鬆散,還不能運用到實際的企業級的開發中。可是書 中對閉包的介紹和麪向對象的開發思想,會使你對JS的認識又提升了一個層次,雖然對面向對象開發的講解還不夠深。《XML開發指南》:咱們知道ajax, 其中X就是指的XML,因此要了解XML的相關知識,你這本書,是必定要看的。看了以後你會發現XML要了解的東 西實在太多了,可能跟你瞭解的東西相比,你才知道點皮毛。對了,這裏說下,我並不推薦你使用XML來做爲你的Ajax的程序的數據的載體。爲何?由於很 不經濟。你先把數據轉換成XML文檔,而後再經過Javascript把XML文檔中的數據提出來,把文檔轉成數據。而瀏覽器對XPath處理的兼容性的 處理,你會很發狂的。如今咱們有一個代替他的東西JSON。可是因爲XML已是不少標準的默認數據通信載體,好比RSS等,因此你仍是得掌握。我的以爲 學Javascript看這些書基本差很少了。因給在我買過其餘的書(
《精通Javascript》:名字起的太玄了,書不怎麼樣,什麼都講了點,就是不講他怎麼用jQuery來實現那些高級功能的,不要買。
《PPK 談 Javascript》感受跟《精通》差很少,什麼都講點,不過多點。還有起碼不像《精通》起那麼臭屁的名字,做者的網站確實很推薦你們去看看,http://www.quirksmode.org/。
《CSS高級技巧》介紹了不少HACK技巧,也頗有用,是本好書,就是翻譯得比較爛。
《Ajax in Action》、《Ajax高級編程》介紹AJAX的內容,主要看看XMLHTTPRequest的介紹把,裏面的例子,不少在《高級編程》中都看過了。
《JavaScript王者歸來》我上當了,本身也SB了一回。
《JavaScript:The Good Parts(影印版)》好書,你會知道JAVASCIRPT這悶語言什麼東西是好的,什麼東西很差?)中,講的內容都是大同小異。看完這些書,你瞭解了 Javascript的相關知識,瞭解了CSS(你會知道CSS都有哪些選擇器),你瞭解了XML的知 識。呵呵,基礎的開發你應該均可以本身解決了。並且你對Javascript的面向對象的開發也有了瞭解,有着向後兼容的開發思想。顯然你看完這些書,你 對WEB標準也會有一個更深層次的理解。固然,想成爲一個優秀的前端工程師,你要學習的知識並不僅有這些,你也要知道SEO的優化知識,由於你寫的頁面要 對搜索引擎也要友好,要結構合理。你還要 瞭解SQL和數據庫,最好還要了解C#等後臺編程的語言。兩個主要緣由,要全面的提升本身,並且要充分的理解面向對象的編程,這些傳統語言的思想更成熟, 但要知道Javascript跟這些傳統的編程語言的繼承機制是不同的。因此不要用Javascript來寫C#。還有一個重要的緣由,你要跟後臺的程 序員合做,要他們更堅定的執行你的不唐突的開發思想,你必需要常常給他們洗腦。可是你說的話要讓他們聽得進去,他說的東西你要了解,而你最好也能給他一些 有好的建議,他們纔會聽你的。爲了咱們WEB標準的開展,辛苦點就辛苦點吧!這裏要補充的就是,前端開發你要本身努力學習還有JSON和正則表達式,目前 尚未很詳細的介紹正則的書,而後就是AJAX程序中取代XML的JSON的數據載體,掌握JSON要比XML容易得多。最後就是你們也是我提到過不少次 的閉包的使用,面向對象的開發的思想。呵呵,最後就是多練習,把你學到知識運用到實際的開發中,常跟朋友多交流,我也但願能跟你們多交流心得。你們共同進 步!javascript

相關文章
相關標籤/搜索