不管是公司的同事仍是外界的程序員朋友們,大部分人對JavaScript的高級應用不甚瞭解,已有的知識架構裏會認爲JavaScript僅僅是一門腳本語言,其做用是給頁面作一些錦上添花的效果,好比表單驗證等等。潛意識裏也就不會用面向對象的思想去編寫JavaScript代碼,也不多會去深刻了解prototype, closures等概念。這致使書寫的代碼常常很糟糕。 前端
對於JavaScript的學習,可能最重要的仍是要從思想上認識到JavaScript不是玩具語言。JavaScript的做用遠不止增長點表單驗證,咱們能夠看看GMail、看看Google Maps,若是開發者們沒有對JavaScript足夠尊敬,是不大可能寫出如此優秀的Web應用的。 程序員
JavaScript門檻很低,但門檻低並不意味着容易掌握。必定程度上,JavaScript的入門容易以及其極大的靈活性,使得要掌握 JavaScript變得很難。從純語言上講,我我的的經驗是,學習 JavaScript比學習Java更具挑戰性。咱們大多習慣了傳統的面向對象表述方式,必定程度上甚至會認爲類、封裝、繼承等概念都得像Java、 C++那樣,可能都歷來沒想過沒有class, extend, override等概念也能面向對象。JavaScript的面向對象打破了這種思想上的禁錮:世界是多樣性的,條條大路通羅馬。誇張一點說,深刻學習 JavaScript,更多的是一種思想上的挑戰,能活躍思路,擴大視野,甚至改變對世界的見解。 架構
上面所說的這些,無心於誇大JavaScript的做用和難度。每一個人都或多或少的會強調本身所學的知識,但在這裏,我但願本身能很客觀的傳遞一個觀點:不管什麼語言,想要精通,都很不容易;若是想學習某門語言,就得從思想上尊敬這門語言,在尊敬的基礎上去學習,纔有可能掌握這門語言的精髓。除了JavaScript,再舉個HTML的例子: ide
常常能聽到這樣的話:HTML多容易,花個一兩天也就會了。我本身也曾這麼認爲。但隨着使用HTML經驗的增加,慢慢感受到, 對於Web前端開發來講,HTML能夠說是最難的。HTML4.01規範中的91個元素就如漢字裏的2500個經常使用字同樣,咱們讀完小學後對經常使用字應該就都認識了,但要用漢字寫篇優秀的文章,卻並不容易。HTML也是這樣,大部分宣稱HTML很容易的開發者,每每只停留在認識body, p, form, table, div, ul等標籤上,對於dl, legend, sub, caption等並不是生僻的標籤甚至都不認識。在經常使用字還認不全的狀況下,宣稱HTML很容易,真的很狂妄。(HTML的難度在於如何利用標籤構建出結構 良好且富含語義的代碼,就如寫做文同樣,不能認爲認識幾個字就自信能妙筆生花。) 學習
總之,語言無貴賤難易,要從思想上尊敬重視一門語言,纔有可能駕馭它,不然,將永遠遊離在專業程序員的寶殿以外。 prototype