實習面試2 位元組跳動前端開發實習生

2021-09-11 11:49:40 字數 2610 閱讀 7349

全程只有一面,面試官人很好,一直在引導我,由於自己太菜了,感覺浪費了人家面試官的時間。感謝遇到的每一位面試官,謝謝一直很有耐心引導我。

1.函式執行作用域的問題。

window.name="bytedance"

function a ()

a.prototype.geta=function ()

var a = new a();

var b=a.geta;

b()答案:window bytedance1

若直接執行a.geta(),答案是什麼?

我感覺是 a 1231

2.第二道題

console.log('1')

settimeout (() => ,100)

乙個promise函式

然後執行該函式

記不太清了

3.撲克牌問題

我手中有一堆撲克牌, 但是觀眾不知道它的順序。

1、第一步, 我從牌頂拿出一張牌, 放到桌子上。

2、第二步, 我從牌頂再拿一張牌, 放在手上牌的底部。

3、第三步, 重複第一步、第二步的操作, 直到我手中所有的牌都放到了桌子上。

最後, 觀眾可以看到桌子上牌的順序是:(牌底部)1,2,3,4,5,6,7,8,9,10,11,12,13(牌頂部)

請問, 我剛開始拿在手裡的牌的順序是什麼?

(相當於乙個完全反過程)之後搞懂再補

4.一段字串"www.bytedance.com"反轉成"com.bytedance.www"(時間複雜度o(n),空間複雜度o(n))

function restr(s) 

else

}return result+tmp

}

引用型別,值大小不固定,棧記憶體中存放位址指向堆記憶體中的物件。是按引用訪問的5.實現淺拷貝的方法?簡單賦值 assign 擴充套件符...實現深拷貝的方法?先用json.stringify把物件轉成字串,再用json.parse把字串轉成新的物件 其中slice和concat不是深拷貝淺拷貝只是拷貝一層,對於基本資料型別來說,拷貝的是值,而深層次物件級別的則是拷貝引用,也就是平常說的位址深拷貝和淺拷貝:假設b複製了a,當修改a時,看b是否會發生變化,如果b也跟著變了,說明這是淺拷貝,拿人手短,如果b沒變,那就是深拷貝,自食其力。

基本資料型別:number,string,boolean,null,undefined五類。

引用資料型別(object類)有常規名值對的無序物件,陣列[1,2,3],以及函式等。

而這兩類資料儲存分別是這樣的:

a.基本型別--名值儲存在棧記憶體中,例如let a=1;

當你b=a複製時,棧記憶體會新開闢乙個記憶體,例如這樣:

所以當你此時修改a=2,對b並不會造成影響,因為此時的b已自食其力,翅膀硬了,不受a的影響了。當然,let a=1,b=a;雖然b不受a影響,但這也算不上深拷貝,因為深拷貝本身只針對較為複雜的object型別資料。

當b=a進行拷貝時,其實複製的是a的引用位址,而並非堆裡面的值。

而當我們a[0]=1時進行陣列修改時,由於a與b指向的是同乙個位址,所以自然b也受了影響,這就是所謂的淺拷貝了。

那,要是在堆記憶體中也開闢乙個新的記憶體專門為b存放值,就像基本型別那樣,豈不就達到深拷貝的效果了

深拷貝,是拷貝物件各個層級的屬性
6. let 和 const 說一下?const 可以定義乙個物件嗎? 可以的(引用位址不變,屬性可以改變)

7.棧和堆的區別

棧(stack)會自動分配記憶體空間,會自動釋放。堆(heap)動態分配的記憶體,大小不定也不會自動釋放。

基本型別有undefined、null、boolean、number 和string。這些型別在記憶體中分別占有固定大小的空間,他們的值儲存在棧空間,我們通過按值來訪問的。

引用型別,值大小不固定,棧記憶體中存放位址指向堆記憶體中的物件。是按引用訪問的

2019位元組跳動實習面試

位元組跳動還是依舊非常注重演算法能力,所以面試過程演算法比重依舊比較大,不知道是不是年前比較缺人的原因,這次面試一共經歷了兩面,而且難度比我去年面試抖音略簡單一下,下面是面試過程的主要題目。1.開始仍舊是常規的自我介紹,接下來重點詢問我在美團實習的經歷,待我將實習內容講解完成以後,主要問我分庫分表按...

位元組跳動後台開發實習面試經驗

位元組跳動一面 arraylist和linkedlist的區別 物件導向的三個特性,重寫和過載各是什麼意思 建索引的語法 mysql的4種連線 mysql索引有哪幾類,有什麼優缺點 手寫sql,現在有個使用者活躍表t,這個表的作用是用來計算使用者留存率的。裡面有兩個欄位uid 使用者id 和date...

1 位元組跳動 前端面試

面試官 先讓進行一下自我介紹。於是簡單的介紹後,就開始正式進入面試階段 1 手寫快速排序 該方法的基本思想是 1 先從數列中取出乙個數作為基準數。2 分割槽過程,將比這個數大的數全放到它的右邊,小於或等於它的數全放到它的左邊。3 再對左右區間重複第二步,直到各區間只有乙個數。var quicksor...