js是一門指令碼語言、解析型語言、弱型別語言、動態型別語言。
歷史演變:
js 作為一門指令碼語言,其執行環境:web瀏覽器、node、adobe flash
dom詳解
1. js 執行在瀏覽器中,是單執行緒的
2. 瀏覽器是多執行緒的:
3. 瀏覽器中的 js 任務1. js主線程 ---> 由js引擎提供
2. js同步任務 ---> js引擎中,主線程上乙個個排隊執行的任務
3. js非同步任務 ---> js引擎中
4. js任務佇列 / 訊息佇列 ---> js引擎中,存放 非同步任務
5. 事件迴圈 eventloop1. 非同步任務是如何被執行的?
2.常見的非同步任務 ---> onclick 等事件的毀掉函式
3. 常見的非同步任務 ---> settimeout / setinterval 等計時器 ( 時間延遲 )
4. 常見的非同步任務 ---> ajax 請求1. 非同步程式設計是有需求的
2. 非同步程式設計解決方案 ---> **函式
function f1(callback), 1000);
}
f1(f2)
3. 非同步程式設計解決方案 ---> 事件監聽(事件驅動模式)
// 這裡採用的jquery的寫法
f1.on('done', f2);
function f1(), 1000);
}
4. 非同步程式設計解決方案 ---> 發布 / 訂閱 (觀察者模式)jquery.subscribe("done", f2);
function f1(), 1000);
}
5. 非同步程式設計解決方案 ---> es6中 promises物件function f1(), 500);
return dfd.promise;}
f1().then(f2).then(f3);
//指定失敗的**函式
f1().then(f2).fail(f3);
6. 非同步程式設計解決方案 ---> es7 引入了像c#語言中的 await,async關鍵字// 這裡認為 f2 是非同步函式
async function f1 ()
// 以上執行順序是: console.log(1); f2(); console.log(2);
js 單執行緒 非同步
執行緒與程序 程序是系統資源分配和排程的單元。乙個執行著的程式就對應乙個程序。在windows中,每乙個開啟的執行的應用程式或後台程式,比如執行中的qq,谷歌瀏覽器,網易雲 資源管理器等都是乙個程序。乙個程序包括了執行中的程式和程式所使用到的記憶體和系統資源。比如,邊聽 邊在寫部落格,這 就是開了兩...
JS 非同步與單執行緒)
js 非同步與單執行緒 題目1.同步和非同步的區別是什麼,試舉例 例子見知識點 區別 1.同步會阻塞 執行,而非同步不會 2.alert 是同步,settimeout 是非同步 題目2.關於 settimeout 結果 1 3 5 2 4 題目3.前端使用非同步的場景有哪些 1.定時任務 setti...
JS非同步和單執行緒舉例
js 需要非同步的根本原因是 js 是單執行緒運 的,即在同 時間只能做 件事,不能 個 ajax 請求由於 絡 較慢,請求需要 5 秒鐘。如果是同步,這 5 秒鐘 就卡死在這 啥也做不了了。非同步的話,就好很多了,5 秒等待就等待了,其他事情不耽誤做,於那 5 秒鐘等待是 速太慢,不是因為 js ...