大廠面經 js基礎篇 必包 this

2021-10-06 10:30:22 字數 1837 閱讀 1881

1. 必包

1.1 什麼是必包

知乎上看到乙個解釋,覺得說的很好,就放在這吧

(比如我們在a函式裡面返回b函式,當 b 函式執行的時候,a函式上下文已經被銷毀了啊,但是我們依然能讀取到a作用域下的值?這是因為作用域鏈導致的,b函式引用了 a函式活動物件中的值的時候,即使 a的執行上下文被銷毀了,但是 js依然會讓 a函式活動物件活在記憶體中,b函式依然可以通過 b 函式的作用域鏈找到它,正是因為 js 做到了這一點,從而實現了閉包這個概念)

1.1 必包的兩種主要形式

1.2 必包的應用場景以及***

function

myobject()

//特權方法

this

.publicmethod

=function()

;}

***:

由於閉包會使得函式中的變數都被儲存在記憶體中,記憶體消耗很大,所以不能濫用閉包,解決方法是,在退出函式之前,將不使用的區域性變數全部刪除。

1.3 關於必包的常出現的考題

function

fun(

n,o)};

}// 參考 有點難

var name =

"the window"

;var object =;}

};alert

(object.

getnamefunc()

());

//the window

// 結論: 必包(所有)的自由變數的查詢雙子愛函式定義時候,像上級作用域查詢,而不是在函式執行時的地方

// 函式作為返回值

function

creat()

}const a =

200let fn =

creat()

fn()// 100

// 函式作為引數傳遞

function

creat(fn

)const a =

100functionfn(

)creat

(fn)

// 100

2. this

1. 什麼是this

2. this面試題目

var object =()

)}}object.

func()

// bar

// bar

// undefined

// bar

var obj1 =

}name =

'name'

var obj2 =

var obj3 =)(

)}}var obj4 =

}obj1.

sayname()

//obj1

obj3.

sayname()

// name

obj4.

sayname()

// name

obj1.

sayname

.call

(obj2)

//obj2

obj3.

sayname

.call

(obj2)

// name

obj4.

sayname

.call

(obj2)

//name

面經整理 LeetCode篇

題解 class solution object defmindistance self,word1,word2 type word1 str type word2 str rtype int len1 len word1 len2 len word2 if len1 0and len2 0 ret...

OCI面經 流程篇

hr call 電面 final interview 三輪vo lc49,bq,design hashmap hr call就是 如果簡歷符合jb上minimum requirement的話,好好準備一下簡歷就可以了吧,當時hr問了我很多實習的details 店面 店面沒有問lc,問了一些基礎,比如...

前端基礎面經

1 如果需要手動寫動畫,你認為最小時間間隔是多久,為什麼?阿里 大多數顯示器的預設頻率是60hz 即一秒重新整理60次 每重新整理一次時間需要1000ms 60 16.7ms,所以理論上最小時間間隔是16.7ms。2 css3動畫 簡單動畫的實現,如旋轉等 1 依靠css3中提出的三個屬性 tran...