[toc]
JS是單線程->JS就是個傻,腦子一根經,做著當前這件事,沒有完成之前,絕對不會做下一件事情
JS中的兩種編程思想:同步、異步
## 同步
同步->上一件事情沒有完成,繼續處理上一件事情,只有上一件事情完成了,才會做下一件事情(JS中大部分都是同步編程的)
```
for(var i=0;i<10000;++i){
if(i==99999){
console.log("循環結束了~~");
}
}
console.log("ok");
```
for循環就是同步編程的,只有循環結束后,才會繼續執行下面的代碼
### 關于死循環
```
while(1){}
console.log("ok"); //->永遠都不會輸出的,因為上面的循環是死循環,循環永遠都不會結束
```
## 異步
規劃要做一件事情,但是不是當前立馬去執行這件事情,需要等一定的時間,這樣的話,我們不會等著它執行,而是繼續執行下面的操作,“只有當下面的事情都處理完成了,才會返回頭處理之前的事情;如果下面的事情并沒有處理完成,**不管之前的事情有沒有到時間**,都踏踏實實的給我等著”
在JS中異步編程只有四種情況:
- 定時器都是異步編程的
- 所有的事件綁定都是異步編程的
- Ajax讀取數據的時候,我們一般都設置為異步編程
- 回調函數也是異步編程的。
```
var n = 0;
window.setTimeout(function(){
n++;
console.log(n); //->1 (2)
},0);
console.log(n); //->0 (1)
```
每一個瀏覽器對于定時器的等待時間都有一個最小的值,谷歌:5~6ms,IE:10~13ms,如果設置的等待時間小于這個值,不起作用,還是需要等待到最小時間才執行的,即使設置的時間為0。
```
```
- 空白目錄
- window
- location
- history
- DOM
- 什么是DOM
- JS盒子模型
- 13個核心屬性
- DOM優化
- 回流與重繪
- 未整理
- 文檔碎片
- DOM映射機制
- DOM庫封裝
- 事件
- 功能組件
- table
- 圖片延遲加載
- 跑馬燈
- 回到頂部
- 選項卡
- 鼠標跟隨
- 放大鏡
- 搜索
- 多級菜單
- 拖拽
- 瀑布流
- 數據類型的核心操作原理
- 變量提升
- 閉包(scope)
- this
- 練習題
- 各種數據類型下的常用方法
- JSON
- 數組
- object
- oop
- 單例模式
- 高級單例模式
- JS中常用的內置類
- 基于面向對象創建數據值
- 原型和原型鏈
- 可枚舉和不可枚舉
- Object.create
- 繼承的六種方式
- ES6下一代js標準
- babel
- 箭頭函數
- 對象
- es6勉強筆記
- 流程控制
- switch
- Ajax
- eval和()括號表達式
- 異常信息捕獲
- 邏輯與和或以及前后自增
- JS中的異步編程思想
- 上云
- 優化技巧
- 跨域與JSONP
- 其它跨域相關問題
- console
- HTML、XHTML、XML
- jQuery
- zepto
- 方法重寫和方法重載
- 移動端
- 響應式布局開發基礎
- 項目一:創意簡歷