2017.9.22【面試階段】
一:js由來
JavaScript 1995年首次設計在瀏覽器上,領導者爲了讓他看起來更像java,因此起名JavaScript;
js是兼容ECMA標準,也稱爲ECMAScript;js是一種直譯式腳本語言,是一種動態類型、弱類型、基於原型的語言;
他的解釋器稱爲JavaScript引擎,爲瀏覽器的一部分,普遍用於客戶端的腳本語言,最先用在HTML上,添加動態功能
二:單線程是js的一大特性
不像其餘語言如java同樣多線程,不用考慮線程同步的問題;
js是用戶與瀏覽器進行交互、進行DOM操做的,使得它必須是單線程,(好比你去修改一個元素的DOM,同時又去刪除這個元素,
瀏覽器聽誰的)
三:js任務有兩種
同步任務:各個任務按照文檔定義的順序一一推入「執行棧」中,當前一個任務執行完畢,纔會開始執行下一個任務
異步任務:各個任務推入「任務隊列」中,只要在當前的全部同步任務執行完畢,纔會將隊列中的任務「出隊」執行
四:任務隊列(event loop):你可理解爲用於存放事件的隊列,當執行一個異步任務時,就至關於執行任務的回調函數
五:異步操做
io(ajax獲取服務器數據)、用戶/瀏覽器自執行事件(onclick、onload、onkeyup等等)以及定時器(setTimeout、setInterval)均可以算做異步操做