前端面試(二)非同步

2021-09-24 08:38:45 字數 2347 閱讀 2146

(1)瀏覽器需要渲染dom

(2)js可以修改dom結構

(3)js執行的時候,瀏覽器dom渲染會暫停

(4)兩段js也不能同時執行(都修改dom就衝突了)

(5)html5中webworker支援多執行緒,但不能訪問dom(應用不廣泛)

console.log(100)

$.ajax(

})console.log(300)

console.log(400)複製**

問題:(1)沒有按照書寫方式執行,可讀性差

(2)callback中不容易模組化(非同步之後需要執行的函式)

(1)同步**,直接執行

(2)非同步函式先放在非同步佇列中

(3)待同步函式執行完畢,輪詢執行非同步佇列的函式(像有個哨兵一直進行監視,非同步佇列中一有函式就開始執行)

settimeout(function

() )

console.log(200)

// 主程序

console.log(200)

// 非同步佇列

function

() 複製**

settimeout(function

() , 100)

settimeout(function

() )

console.log(3)

// 主程序

console.log(3)

// 非同步佇列

// 立即加入

function

() // 100ms 之後被放入

function

() 複製**

// jquery1.5之前

var ajax = $.ajax(,

error: function

() })

console.log(ajax) // 返回乙個xhr物件

// jquery 1.5之後 需要新加**時可以直接只加個done或者then進行擴充套件

var ajax = $.ajax('***')

ajax.done(function

() ).fail(function

() ).done(function

() {})

ajax.then(function

() , function

() ).then(function

() , function

() )複製**

jquery deferred 和 promise的區別?

(1)jquery deferred 有resolve() 、reject()主動觸發的函式也有then()、done()、error()被動監聽的函式

(2)promise 只能被動監聽 不能主動修改

// 已經封裝好的(a 員工)

function

waithandle

() settimeout(task, 1000)

// wait 返回

return dtd.promise()

}// 最終返回

return

wait(dtd)

}// 使用(b 員工)

var w = waithandle() // promise 物件

$.when(w).then(function

() , function

() )複製**

function loadimg(src) 

img.onerror = function

() img.src = src

})return promise

}var src = '位址'

var result = loadimg(src)

result.then(function (img) ,function

() )

result.then(function (img) )複製**

規定:then只接受乙個引數,最後統一用catch捕獲異常

(1)三種狀態:pending、fulfilled、rejected;初始狀態是:pending;pending變為fulfilled,或者pending變成rejected(狀態變化不可逆)

(2)promise 例項必須實現then 這個方法;then()必須可以接受兩個函式作為引數;then返回必須是乙個promise例項(沒有返回時預設被呼叫的例項); then只是將callback拆分了

前端面試寶典(二)

1 對web標準以及w3c的理解與認識 標籤閉合 標籤小寫 不亂巢狀 提高搜尋機械人搜尋機率。更少的 和元件,容易維護和改版,不需要變動頁面內容 列印版本而不需要複製內容,提高 的易用性。2 行內元素有哪些?塊級元素有哪些?css盒模型是什麼?塊級元素 div p h系列 form ul 行內元素 ...

前端面試日記(二)

大概是在6月11號在boss直聘投的簡歷,6月12號中午收到 約的面試時間,剛開始說是13號晚上7點 後面可能時間有變,中午來了個 說改到9 10點 怎麼說算是第一次面試自己目標公司之一吧,記錄下不管過沒過,也是乙份寶貴經歷。h 前端的學習的話一般是得通過實踐的,平時有自己做過專案嗎?me 學習基礎...

前端面試二 HTML

1 語義化的標籤就是讓標籤有自己的含意 例如表示頭部表示尾部表示頁面主體等。2 語義化標籤的優點 結構清晰,有利於搜尋引擎優化 seo 便於團隊開發和維護,可讀性更高。input是單行文字框,不能換行。有value值 textarea是多行文字框,沒有value值 textarea style he...