使用JavaScript
已經好幾年了,因爲工做主要是作服務端開發,在工做中逐漸發現JavaScript
的使用範圍原來越普遍。在以前的幾個項目中,公司配備了一個設計和一個前端,前端人員只會切圖和排版,稍微複雜一點的功能仍是的咱們本身來,畢竟是要和後端交互,因此這個仍是邁步過去的關口。以前只是在每次須要使用JavaScript
的時候去粗略的學習了一下,基本能完成全部的工做需求。不會的地方在github
上面找一些案例修改一下也能完美的運行。
今天,JavaScript
已經到了不起不學的地步,從前用戶交互到UI框架,以及今天很是流行的VUE
,jQuery
,React
,nodejs
,H5遊戲
,APP
等等,JavaScript
的身影已經無處不在,因此咱們有必要抽時間來系統的梳理一遍。
對於已經掌握一兩門開發語言的同窗都知道,學習任何一門語言不外乎學習這幾個大類:javascript
咱們根據上面的學習思路來整理和總結JavaScript
從最基礎到類庫框架的使用和開發,以及一些該語言的編程思路,算法和技巧。在這裏咱們必定要注意一點,基礎知識很關鍵。在這個浮躁的時代,人人都想着快速掙錢。不少人都是靜不下心來進行一個系統的學習,認爲我用到哪裏就去看哪裏。雖然JavaScript
入門是很是容易,後端的同窗花一天時間過一遍就能開始寫出一些簡單的功能。可是想要精通非數年不可及也。你們必定要相信一點,在前端幾百萬從業人羣裏面,真正技術拿得出手的真的不超過15%。我帶過不少徒弟也招過新人入職,在中國的就業競爭壓力下,人人都想着速成,看到某個行業火熱,就想一股腦擠進去,學習編程若是不是興趣驅動,不少人都是沒有辦法堅持到最後的。html
ECMAScript
是JavaScript
的標準規範,咱們在編寫程序的時候一定要按照這個規範來操做。到目前爲止,已經發展到ES6和ES7了,每一次的版本升級都會產生一些新的支持和規範和瀏覽器的兼容解決方案。前端
咱們的學習和續文按照如下流程來進行總結,從而創建一個系統化的知識體系。這裏要注意,務必將基礎部分掌握牢靠,磨刀不誤砍柴功,只有將基礎部分掌握並創建起系統的知識體系,在後面學習JavaScript
衍生的其餘模式才能遊刃有餘。在學習JavaScript
以前請務必先系統的學習好HTML
和CSS
知識。java
學習JavaScript
主要是學習如下幾個方面:node
你們在這裏應該明白了,ECMAScript
實際上是JavaScript
的子集,咱們所說的JavaScript
實際上是在Web瀏覽器這個宿主環境上,JavaScript
包含了基本的核心,也就是ECMAScript
來標準化基本的語法,咱們的宿主環境在web瀏覽器,因此在ECMAScript
的基礎上有添加了和瀏覽器進行交互的擴展BOM
和對文檔節點交互的DOM
。不光在JavaScript
裏面纔有ECMAScript
,好比你們耳熟能詳的Node和Adobe Flash,因此ECMAScript
並非參照web瀏覽器的,JavaScript
實現了ECMAScript
,Adobe ActionScript一樣也實現了ECMAScript
。git
ECMAScript
主要規定了如下幾個方面的內容的描述:github
文檔對象模型(DOM)是針對XML但通過擴展於HTML
的應用程序編程接口。DOM
把整個頁面映射爲一個多層節點結構。HTML
或XML
頁面中的每一個組成部分都是某種類型的節點,這些節點又包含着不一樣類型的數據。在DOM
中,這個頁面經過分層節點(元素),經過DOM
建立表示文檔的樹形圖,開發人員得到了控制頁面內容和結構的主動權。藉助DOM
提供的API
,開發人員能夠輕鬆自如的刪除、添加、替換或修改任何節點。
瀏覽器對象模型(BOM),開發人員使用BOM
能夠控制瀏覽器顯示的頁面之外的部分,可是它做爲JavaScript
實現的一部分去沒有相關的標準。這個問題在HTML5
中獲得瞭解決,HTML5
致力於把不少的BOM
功能寫入正是規範。從根本上將,BOM
只處理瀏覽器窗口和框架,但人們習慣上也把全部針對瀏覽器的JavaScript
擴展算做BOM
的一部分,如下就是這樣的擴展:web
因爲沒有BOM
標準能夠遵循,所以每一個瀏覽器都有本身的實現。正則表達式
// 引入外部腳本 <script type="text/javascript「 src="example.js></script> // 執行代碼段 <script> // 代碼段 </script>
javaScript
代碼能夠放在head
標籤內,可是因爲JavaScript
解析器是自上而下來執行代碼的,因此若是你在head
裏面寫的JavaScript
代碼裏面包含獲取元素節點,回致使找不到節點而出錯,咱們可使用window.onload = function(){代碼段}
來讓整個文檔解析完成之後再執行JavaScript
代碼。最好的辦法就是將外部腳本引入和內部代碼都寫到</body>標籤先後是最好的辦法。固然,咱們除了直接引入外部腳本之外,還能夠動態的從後端來獲取JavaScript
執行代碼和須要的Json
數據。好比咱們在開發遊戲的時候,對遊戲的每一個玩法能夠進行動態的預加載,在後端來獲取遊戲的配置信息,而後做爲響應數據響應給前臺瀏覽器,來初始化遊戲界面。算法
字符串
數字
布爾值
數組
對象
運算符
條件操做符
邏輯運算符號
if else
do while
while
switch
for
for in
label
break 和 continue
with
內置函數
自定義函數
匿名函數
沒有重載
做用域鏈
函數做用域
堆內存和佔內存
引用計數和標記清除
使用對象
數組對象的方法運用
字符串的方法運用
建立和操做數組
理解JavaScript類型
日期類型
正則表達式
function類型
基本包裝類型
定時器相關
未完待續....