字節跳動_前端實習視頻面試_內推三面

前言

二面結束後第二天中午11:00,收到hr電話,約好三面時間。

剛開始以爲是hr 面,放鬆了下心情,但是還是很緊張。三面官不知道爲何比一二面官親近點。三面官從組件,架構,到算法,都問了。一面問基礎,二面問項目,三面問內功。

面試時長:45 分鐘


題目

1.詢問 jquery 項目的事情,詳細詢問了組件化 是怎麼個組件化

我拿 (搜索框 和 搜索按鈕)舉例,還拿了 表格 組件舉例

2.面試官追問:試着寫一下表格組件 的組件化代碼

略。

3.你還有個項目用到了Vue,你瞭解 Vue 的雙向數據綁定嗎?

MVVM: 指 Model 、View 和 ViewModel。

Model 模型,數據存放於模型層

View 視圖,視圖層展示數據

Model 和 View 之間不直接聯繫,靠 ViewModel 聯繫起來。當Model的值發生變化的時候,通過數據綁定通知ViewModel,ViewModel再去改變View;當View 中發生用戶交互導致數據變化時,ViewModel 通過DOM 事件監聽,通知Model改變變化了的值。

面試追問,那麼你知道 Model 是通過什麼方式改變 View的值的嗎?

每個Vue 實例中的 data 屬性中的 每個值,在實例化過程中都會 給它 加上 getter/setter 函數,當 調用 setter 方法的時候,setter 方法內部會通知 ViewModel 改變 View 的值。

4.高德地圖,百度地圖,騰訊地圖。

現在要我封裝一個 地圖組件, 兼容這些地圖,屏蔽三種地圖的方法,我不需要知道他們的方法名,就可以調用這些地圖。現嘗試寫一下。

我說具體代碼我暫時寫不出,但是我覺得這個是適配器模式

面試官說:是的,你有思路了。

在面試官的引導下,寫了一個簡陋的地圖類,未完成,但是因爲思路說出來了,

面試官只是讓我說下適配器模式具體怎麼實現,我說出來之後,這題也是放我走了。

5.數據結構和算法記得嗎,說下二叉樹和棧,寫下 二叉樹 的層次遍歷

棧是先進後出

二叉樹的層次遍歷:

function outputTree(root) {
    const arr = [];
    if(!root) {
        return arr;
    }

    const queue = [];
    queue.push(root);
    let node = null;
    while(queue.length) {
        const len = queue.length;
        for(let i = 0;i < len;i++) {
            node = queue.shift();
            arr.push(node.val);
            if(node.left) {
                queue.push(node.left);
            }
            if(node.right) {
                queue.push(node.right);
            }
        }
    }

    return arr;
}

6.問我最近在幹嘛,學了什麼,對什麼比較感興趣

我說了最近在瞭解 nodeJS,javascript 現在變得越來越 全面,還說了 Electron 和 React Native。


感想

三面總體感覺比一二面要好很多,最後面試官說他和我同一個大學畢業(難怪三面官感覺親近),面試官最後也向我說明了目前公司裏面的前端的三個主要職位方向:

(1)面向客戶,製作 html5 + css3 爲主的界面

(2)純技術,製作 js 組件

(3)面向全棧,後臺系統

我說我對前兩個感興趣。

繼續加油吧。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章