有關JavaScript的發展歷程,百度百科上已經說得很清楚了,這裡不贅述,只是想談一下我剛剛接觸JS的一些感觸。 作為後端java開發者,初次學習JS的時候,真的覺得JS非常的不嚴謹,很混亂。由於它的歷史遺留問題和語言設計的初衷,導致有很多bug,後面修修補補,已經成為了feature。 儘管有很 ...
有關JavaScript的發展歷程,百度百科上已經說得很清楚了,這裡不贅述,只是想談一下我剛剛接觸JS的一些感觸。
作為後端java開發者,初次學習JS的時候,真的覺得JS非常的不嚴謹,很混亂。由於它的歷史遺留問題和語言設計的初衷,導致有很多bug,後面修修補補,已經成為了feature。
儘管有很多讓人迷惑和不適應的地方,但是JS毫無疑問是web前端動態頁面領域內絕對的王者,所以該學還得學。
我非常建議,在學習JS之前,先學習Java或者C/C++這樣的強類型語言,不用學的很精深,至少瞭解基本數據類型及其記憶體結構,還有函數和對象的概念和使用。這樣再去學習JS的時候,很多疑惑的地方,會相對好理解。
強烈不建議毫無編程經驗的純小白,以JS作為第一門編程語言進行學習。
JS的一些特點
-
解釋性語言
JS的代碼不會先被編譯成機器語言,而是直接內嵌入網頁代碼中,由解釋器執行代碼。
現代瀏覽器都會自帶JS解釋器,比如Chrome的V8引擎。
-
弱類型
這是它不同於Java這種強類型語言的特點,對於變數的聲明,不需要事先指定變數的數據類型。
有得必有失,這種特點,也導致它不是很嚴謹,有很多隱藏性問題。
-
函數式編程
這也是它的特點,這種語法使得它的代碼非常靈活,但是同時語法規則也更多。
Java在1.8以後,也支持了函數式編程,加入了lambda表達式。
-
單線程
Java有多線程編程,相對應的語法會複雜。而JS因為是單線程的,所以不會有這部分問題,但是這樣就會犧牲性能,所以JS提供了非同步編程,來提升性能。
-
面向對象
現代編程語言,基本都會支持面向對象編程。
-
ECMAScript
ECMAScript才是JS的正規名字,只是大家習慣叫JS了。
ECMAScript是JS的一整套語法標準,而解釋器則負責實現這一整套語法標準。於是JS代碼,才會準確無誤的在解釋器中執行。
ES6是JS的一個大的版本更新,類似於Java 1.8之於Java。
學習JS之前的準備工作
-
教程
推薦一個文本教程:現代 JavaScript 教程,它的web版本是免費的;
當然還可以跟著各種視頻學習;
建議先跟著視頻學習,然後再對著文本教程進行查漏補缺和加深理解。
-
編輯器
建議使用VS Code。
-
開發調試工具
因為JS是在瀏覽器中去執行的,所以要學會使用瀏覽器提供的開發調試工具。