周老師突擊大廠面試題記錄

2021-10-18 04:01:37 字數 3964 閱讀 8720

對於雙向繫結的理解(vue2.0 對比 vue3.0)

首先

vue2.0 雙向繫結使用的是 object.defineproperty

具體**

// vue 2

var obj =

//深拷貝

let newobj =

json

.parse

(json

.stringify

(obj))

object.

defineproperty

(obj,

'name',,

set(newval)

})

弊端 需要進行深拷貝 如果有多個屬性就需要遍歷

vue 3.0 使用

//obj 是需要監聽的物件

obj =

newproxy

(obj,

,get

(target,key)

})

對比vue2.0 他不再需要遍歷每個屬性 也不用進行深拷貝

在2023年以前基本沒有跨域問題,那時候前後端還沒有分離,前端**和後端都部署在乙個伺服器上,之後因為前後端分離才需要解決跨域問題。

首先解決跨域問題是方法是jsonp

""

>

因為 script 是不存在跨域問題的 所以jsonp的玩法就是

""

>

func

(data)

給伺服器傳func方法

伺服器會準備資料存在func()

傳送回去

jsonp的弊端

只能傳送get

不安全有快取

大小限制小

之後也有用iframe解決跨域

然後現在用的就是cors後端解決跨域

開發的時候用proxy解決跨域但是打包後就沒有webpack

所以就需要用nginx

陣列去重(索引塌陷效能不好)

// 陣列去重

var arr =[2

,2,3

,2,7

,9,0

,9,5

,6];

// 演算法的方法

for(

var i =

0;i1;i++)}

} console.

log(arr)

es6中的new set()方法

var arr =[2

,2,3

,2,7

,9,0

,9,5

,6];

// 直接用es6的方法

//new set()得到的是乙個類物件

let newarr =

[...

newset

(arr)

];

運用類 中 屬性名不能重複的方法去重

// 類 處理

var obj =

arr.

foreach

(v=>})

var newarr =

;for

(key in obj)

console.

log(newarr)

氣泡排序

兩兩比較 10個元素需要比9次

// 氣泡排序

var arr =[2

,2,3

,2,7

,9,0

,9,5

,6];

for(

var i=

0;i1;i++)}

} console.

log(arr)

sort排序

// sort

var arr =[2

,2,3

,2,7

,9,0

,9,5

,6];

arr.

sort

((a,b)

=>a-b)

console.

log(arr)

選擇排序

從左到右 每次找到最小的 交換到前面來

// 選擇排序

var arr =[2

,2,3

,2,7

,9,0

,9,5

,6];

for(

var i =

0; i < arr.length -

1; i++)}

arr[i]

= index

} console.

log(arr)

插入排序

像撲克摸牌一樣 抽一張牌對比手上的牌 如果找都手上的一張牌比摸得牌大就把這張牌插入 找到的下標前面

// 插入排序

var newarr =

; newarr.

push

(arr[0]

);for(

var i=

1;i) newarr.

splice

(index,

0,arr[i])}

console.

log(newarr)

快速排序

找中軸 抽離出來 剩下的數比中軸大的放右邊 小的放左邊

左遞迴 右遞迴

// 快速排序

function

quick

(arr)

else})

return

quick

(leftarr)

.concat

(centeitem,

quick

(rightarr))}

console.

log(

quick

(arr)

)

es6扁平化處理

// 扁平化處理es6

var arr1 =[1

,2,[

3,4]

];console.

log(arr1.

flat

(infinity

))

變成字串

var arr1 =[1

,2,[

3,4]

];// console.log(arr1.flat(infinity))

console.

log(arr1.

tostring()

.split

(','

))

迴圈 判斷裡面的原生v是不是陣列

var arr1 =[1

,2,[

3,4]

];// console.log(arr1.flat(infinity))

while

(arr1.

some

(v=>array.

isarray

(v))

) console.

log(arr1)

面試題記錄

面試題記錄 2012年6月13日杭州某網路技術公司 1,空指標自加 int p int pa null p pa p 求p的值 這道題考的貌似指標的加法,因為對於空指標比較敏感直接感覺有問題,所以填寫出錯.到底如何呢?直接反彙編之 int p int pa null 010d14f1 mov dwo...

面試題記錄

筆試面試題總結 1,var a 0 function a catch e 0 this.b bbb var aa new a settimeout function 0 settimeout的作用域是window,所以結果為1,2,bbb,b但是將 中的第二個settimeout去掉之後,結果為1,...

面試題記錄

1 linux實時檢視日誌 tail f catalina.out 2 linux檢視埠是否被占用 etstat tunlp grep 埠號,用於檢視指定埠號的程序情況 lsof i 80 3 linux查詢abc開頭的檔案的第一行輸出到指定檔案 system bin sh ls users zha...