前言 本次面試面試了很多家公司,包括 360,美團(tuán),猿輔導(dǎo),小米,騰訊地圖,頭條,新東方,快手,知乎等幾家公司,剛開(kāi)始去面試的時(shí)候那段時(shí)間狀態(tài)不是很好(基本每天都加班到很晚,...
前言 本次面試面試了很多家公司,包括 360,美團(tuán),猿輔導(dǎo),小米,騰訊地圖,頭條,新東方,快手,知乎等幾家公司,剛開(kāi)始去面試的時(shí)候那段時(shí)間狀態(tài)不是很好(基本每天都加班到很晚,...
websocket http是一個(gè)請(qǐng)求、必須有一個(gè)響應(yīng),http1.1中keepalive后也是一個(gè)tcp可以發(fā)多次請(qǐng)求,但還是一個(gè)請(qǐng)求配一個(gè)響應(yīng)websocket協(xié)議,讓瀏...
xss 1、用戶輸入什么直接顯示在頁(yè)面中,導(dǎo)致被惡意輸入 2、如果用戶輸入的前端沒(méi)有校驗(yàn)發(fā)送給服務(wù)端,服務(wù)也沒(méi)有校驗(yàn),那么重新獲取時(shí)就會(huì)出現(xiàn)攻擊 解決:前端后臺(tái)都需要對(duì)用戶的...
css 水平、垂直居中 1、 已知元素寬高<1>absolute+負(fù)margin --- 必須要定寬高<2>absolute+top、bottom、left、right=0...
cookie、session、jwt cookie是將用戶信息存在cookie中,但是不安全session驗(yàn)證是登錄成功后服務(wù)端將用戶信息持久化,將session_id設(shè)置在...
esm和commonjs規(guī)范的區(qū)別 1、esm是引用賦值,并且是編譯時(shí)加載。模塊內(nèi)部引用的變化,會(huì)反應(yīng)在外部 一個(gè)模塊中可以有多個(gè)export,但是只能有一個(gè)export d...
BOM對(duì)象模型 跨域相關(guān)問(wèn)題 瀏覽器渲染 1、構(gòu)建 dom 樹(shù)和 csscom2、生成渲染樹(shù):從DOM樹(shù)的根節(jié)點(diǎn)開(kāi)始遍歷每個(gè)可見(jiàn)節(jié)點(diǎn),對(duì)于每個(gè)可見(jiàn)的節(jié)點(diǎn),找到CSSOM樹(shù)中對(duì)...
1.webpack (1)初始化參數(shù):從配置文件和 Shell 語(yǔ)句中讀取與合并參數(shù),得出最終的參數(shù);(2)開(kāi)始編譯:用上一步得到的參數(shù)初始化 Compiler 對(duì)象,加載所...
MVVM model和view層通過(guò)中間的vm連接和驅(qū)動(dòng)。model層數(shù)據(jù)變化會(huì)改變視圖,view改變通過(guò)事件來(lái)修改數(shù)據(jù)。vue參考了MVVM實(shí)現(xiàn)了雙向綁定,react是MV...
閉包和作用域 原型和原型鏈 所有原型鏈的終點(diǎn)都是 Object 函數(shù)的 prototype 屬性每一個(gè)構(gòu)造函數(shù)都擁有一個(gè) prototype 屬性,此屬性指向一個(gè)對(duì)象,也就是...
gpu加速 will-change:left -> 瀏覽器就知道left屬性會(huì)變化,從而使用gpu加速優(yōu)化性能。transform:tarnlateZ(0) ->開(kāi)啟新圖層,...
樹(shù) 一棵樹(shù)可以沒(méi)有任何節(jié)點(diǎn)稱為空樹(shù),可以只有一個(gè)節(jié)點(diǎn)root一棵樹(shù)可以分為多個(gè)子樹(shù)組合,二叉樹(shù)有左子樹(shù)、右子樹(shù)。節(jié)點(diǎn)的度:這個(gè)節(jié)點(diǎn)子樹(shù)的個(gè)數(shù)。上圖的節(jié)點(diǎn)1度為5,節(jié)點(diǎn)2的度為...
class Node {constructor(ele, parent) {this.left = null;this.right = null;this.parent = ...
單向循環(huán)隊(duì)列 可以使用數(shù)組來(lái)實(shí)現(xiàn)隊(duì)列,并且各項(xiàng)接口也可以優(yōu)化到 O(1) 的時(shí)間復(fù)雜度--這就是循環(huán)隊(duì)列 循環(huán)雙端隊(duì)列 可以進(jìn)行兩端添加、刪除操作的循環(huán)隊(duì)列
單向隊(duì)列 queue使用鏈表是因?yàn)閐eQueue需要對(duì)頭部元素進(jìn)行出隊(duì)列操作,鏈表對(duì)頭部操作效率比數(shù)組高,數(shù)組需要移動(dòng) 雙端隊(duì)列 雙端隊(duì)列是可以在頭部和尾部都進(jìn)行入隊(duì)和出隊(duì)操作。
雙向鏈表刪除、添加的復(fù)雜度都會(huì)降到O(n/2). 如果頻繁在尾部進(jìn)行添加、刪除操作,動(dòng)態(tài)數(shù)組、雙向鏈表均可選擇 如果頻繁在頭部進(jìn)行添加、刪除操作,建議選擇使用雙向鏈表 如果有...
單向鏈表優(yōu)點(diǎn):不會(huì)造成內(nèi)存空間的浪費(fèi),需要多少開(kāi)辟多少。單向鏈表缺點(diǎn):會(huì)頻繁的開(kāi)辟、刪除內(nèi)存空間。 由于添加、刪除鏈表元素都需要判斷是否是操作第一個(gè)節(jié)點(diǎn),可以采用增加虛擬頭節(jié)...
數(shù)組在內(nèi)存中是連續(xù)保存的,容量也是在一開(kāi)始就確定的,很多編程語(yǔ)言中,數(shù)組都有個(gè)缺點(diǎn)就是不可以動(dòng)態(tài)的修改容量?;蛘叩讓右呀?jīng)封裝好了一套動(dòng)態(tài)數(shù)組的數(shù)據(jù)結(jié)構(gòu)。自己實(shí)現(xiàn)動(dòng)態(tài)數(shù)組:代碼...