JS常見面試題記錄

2021-10-07 21:28:29 字數 1612 閱讀 3853

//=>淺轉殖:只複製物件或者陣列的第一級內容

//=>深轉殖:轉殖後陣列的每一級都和原始陣列沒有關聯

//那麼請說出,淺轉殖都怎麼去實現,如何實現深度轉殖

let obj =

, d:

/^\d+$/};

let arr =[10

,[100,

200],]

;/*let clone = json.parse(json.stringify(obj))

這種方式存在一些問題:某些格式的資料在轉換為json字串和json物件的時候會出現問題

正則-》空物件

bigint-》會報錯

日期-》轉為字串後就轉不回來了

symbol/undefined/function -》直接沒有了

*/function

clonedeep

(obj)

)return clone

}

js中的同步非同步程式設計

1.瀏覽器值分配乙個執行緒,用來執行js**(一次只能做乙個事情=》同步)

2.任務佇列機制:遇到需要非同步執行的任務(客戶端:定時器、事件繫結、ajax、promise、await),先把任務放置在任務佇列中,接下來繼續執行同步任務,當同步任務都執行完,瀏覽器渲染執行緒閒下來了,再去任務佇列中,按照指定的順序,把非同步任務拿出來執行

=》 event loop

=》 event queue: 微任務 巨集任務(順序:先找微任務,再找巨集任務)

// 下面是promise處理的順序機制

newpromise

((resolve,reject)

=>).

then

(result =>

,reason =>

)// async 語法糖執行機制

async

function

func()

// 題目

async

function

async1()

async

function

async2()

console.

log(

'script start');

// => 1

settimeout

(function()

,0)async1()

;new

promise

(function

(resolve)).

then

(function()

);console.

log(

'script end');

// => 5

任務佇列

微任務:1.

await

(下面**)

2.resolve

(通知then中的第乙個方法執行)

巨集任務:1.定時器(5ms執行**)12

345 順序執行完畢,列印資料之後,瀏覽器渲染執行緒空閒下來了,就去任務佇列中找任務

正常微任務執行順序:誰先放置誰先執行67

8列印完,就執行完畢

JS常見面試題 一

1 js的原型和原型鏈怎麼理解?原型鏈有什麼應用?答 js原型以及原型鏈是js物件導向程式設計的基礎和重點,這個也是筆試和面試常問到的問題。每乙個建構函式都有乙個屬性prototype,這個屬性他指向就是我們常說的建構函式的原型。每當我們通過建構函式要去new乙個例項的時候,new操作符會做些事情,...

JS常見面試題 一

1 js的原型和原型鏈怎麼理解?原型鏈有什麼應用?答 js原型以及原型鏈是js物件導向程式設計的基礎和重點,這個也是筆試和面試常問到的問題。每乙個建構函式都有乙個屬性prototype,這個屬性他指向就是我們常說的建構函式的原型。每當我們通過建構函式要去new乙個例項的時候,new操作符會做些事情,...

前端js常見面試題

not a number 不是乙個數字,但是數值型別 nan 與其他數值進行比較的結果總是不相等的,包括它自身在內 var宣告的變數會掛載在window上,而let和const宣告的變數不會 var宣告變數存在變數提公升,let和const不存在變數提公升 let和const宣告形成塊作用域 同一作...