//=>淺轉殖:只複製物件或者陣列的第一級內容
//=>深轉殖:轉殖後陣列的每一級都和原始陣列沒有關聯
//那麼請說出,淺轉殖都怎麼去實現,如何實現深度轉殖
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宣告形成塊作用域 同一作...