洗牌:
function shuffle(arr)
}
柯力化:
function add() ;
// 利用tostring隱式轉換的特性,當最後執行時隱式轉換,並計算最終的值返回
_adder.tostring = function () );
}return _adder;
}let s = add(1)(2)(3)
console.log(s)
相加:
function one(arg=0)
function two(arg=0)
function add(arg)
two(add(one()))
new實現:
// 第二版
function create() ;
bind實現:
// 第四版,已通過測試用例
function.prototype.bind2 = function (context) ;
var fbound = function ()
fnop.prototype = this.prototype;
fbound.prototype = new fnop();
return fbound;
}
function.prototype.call = function (context)
context = context || window;
context.fn = this;
let result;
if (!arr) else
delete context.fn
return result;
}
promise.all:
all(list)
}, err => )}})
}
finally:
promise.prototype.finally = function (callback) )
);};
race:
promise._race = promises => new promise((resolve, reject) => )
})
扁平化:
array.from(new set(arr.flat(infinity))).sort((a,b)=>)
array.prototype.flat= function()
function flatten(arr)
return arr;
}
指定層級和獲取深度:
var arrs = [,[,[1,[1,[1]]]]], floor = 1, max = 1;
function deep(arr, floor)
if(item instanceof array)
})}deep(arrs,1)
console.log(max) //5
function flatten(arr,n=1)
return result
}function shallowflatten(arr)
flatten([1,[2,[3,[4]]]], n=1)
async\await
async function fn(args)
// 等同於
function fn(args) );
}function spawn(genf) catch(e)
if(next.done)
promise.resolve(next.value).then(function(v) );
}, function(e) );
});}
step(function() );
});}
物件判斷:
export default function isplainobject(obj)
return proto === baseproto
}
promise:promise
vuex原理補充:vuex原理補充
redux原理補充:redux原理補充
react-redux原理補充:react-redux原理補充
react+diff原理補充:react簡易實現
react-router原理:react-router原理
react fiber原理補充:原理分析
vue原理補充: vue原理補充
webpack熱更新原理補充: webpack熱更新原理補充
webpack**分割打包原理補充:webpack**分割打包原理補充
grahql補充:----------------
vue通訊:------------------
react-form:-----------------
diff原理:新增鏈結描述
事件合成機制新增鏈結描述
react setsate機制:
1.enqueuesetstate將state放入佇列中,並呼叫enqueueupdate處理要更新的component
2.如果元件當前正處於update事務中,則先將component存入dirtycomponent中。否則呼叫batchedupdates處理。
3.batchedupdates發起一次transaction.perform()事務
4.開始執行事務初始化,執行,結束三個階段
5.初始化:事務初始化階段沒有註冊方法,故無方法要執行
6.執行:執行setsate時傳入的callback方法,一般不會傳callback引數
8.flush_batched_updates在close階段,會迴圈遍歷所有的dirtycomponents,呼叫updatecomponent重新整理元件,並執行它的pendingcallbacks, 也就是setstate中設定的callback。
整理 js經典小面試題
var str abcoefoxyozzopp var index str.indexof o 宣告變數,並且進行第一次查詢 var sum 記錄位置 var i 0 記錄次數 while index 1 console.log sum,i 處 var str abcoefoxyozzopp var...
筆試題整理
n副撲克,張數為m,大小為1 m,每幅撲克抽一張,求和恰好為k的組合數,結果對10e9 7取餘數。思路 動態規劃。和為i,j副撲克,dp i j dp i 1 j 1 dp i m j 1 此處需要判斷 i m 0 初始化,j 1,i m,dp i j 1 i j,dp i j 1,後面的情況不可能...
js面試整理
1.判斷基本資料型別typeof 判斷物件的型別 object.prototype.tostring.call 使用 typeof bar object 判斷 bar 是不是乙個物件弊端?使用 typeof 的判斷object弊端是顯而易見的 這種弊端同使用 instanceof let obj l...