記錄一次失敗的騰訊前端實習生電面

MSYG發表於2019-03-14

本人大三學生,考慮今年暑假找前端實習工作,海投簡歷

剛才學校安排的實習(在政府部門)回來,接到騰訊電話要面試

面試官是一個很年輕的師兄

第一次面試實在慌張,再加上沒準備,然後掛了

可能記得不是很全了,挑幾個印象比較深的說吧

自我介紹一下

慌張的說了自己是哪大學,自己的專業是管理,並且前端都是自學的,我知道太簡單了,但就是說不出來

微信小程式

一般一面不會問比較多的框架內容,因為簡歷上寫了現在還在做一個小程式專案,簡單聊了兩句

1. 做微信小程式遇到過哪些問題,怎麼解決的

說踩坑也挺多的,但就是說不上來,做筆記真的很重要

就說了一個條件渲染,自己利用css3d旋轉動畫解決條件渲染的死板的顯示隱藏

2.你們資料是怎麼來的

學長做的後臺, 學校vpn獲取資料, 目前只做了課表功能

JS

1.如何往頁面裡插入1000個元素

就想起來了for迴圈,document.createElement()

2.1000個元素新增點選事件

當時確實不知道事件委託,我還以為問我的是閉包問題,就按照閉包思路來解了

然後面試官說這樣太浪費效能,我就說不出來了

3.閉包的原理以及如何實現一個閉包

因為外層函式的資料可以被內層函式訪問,然後把內層函式儲存到外部即可

那怎麼儲存?

return函式引用(不是執行)

儲存為window的屬性等

可能應該跟他講講作用域鏈...可是當時想不起來

4.如何實現一個繼承

怪我沒好好準備,這個居然忘完了

具體繼承方法可以看紅寶書

聖盃模式

const myExtends = (function ( ) {
    function F(){};
    return function (Target, Origin) {
        F.prototype = new Origin();
        Target.prototype = new F();
        Target.prototype.constructor = Target;
        Target.prototype.uber = Origin.prototype;
    }
})
複製程式碼

5.陣列方法使用過多少

push,shift,unshift,pop這四個棧方法, splice,join等

6.陣列去重

就想起了了雙for迴圈,遍歷陣列元素

有很多方法的比如es6的set等

7.如何判斷一個物件是陣列

instanceOf, es6的isArray方法

其他想不起來了

8.如果直接寫一個變數等於[], 那這是Array的例項嗎

是,這是一個語法糖

9.null和undefined有什麼區別

null是空物件指標, undefined是一個變數已宣告但未賦值, typeof null 返回 object

並且null == undefined是返回true的

ES6

1.ES6新特性你用過多少

const,let,箭頭函式,promise,就說了這麼多...當時就想起來這麼多

反省一下還有class,set,map,解構賦值,陣列新方法,inport等,這麼多都沒說

2.用的比較多的有哪些

就說了let和const,箭頭函式

3.let和const和之前變數定義有什麼區別

let和const不能重複宣告,並存在死鎖問題沒有變數提升

比如

typeof a // 這是報錯的
let a = 1;
const b = 2
複製程式碼

cosnt定義物件是可以改變物件屬性的,因為儲存的是記憶體地址

4.箭頭函式this問題

如果箭頭函式在普通函式裡面的話,this由最接近箭頭函式的普通函式決定

如果直接寫到全域性裡面,this是undefined

5.如何實現一個Promise()

這個真的不會

掘金有挺多這種帖子的,一定要看看

快取

1.Cookie和Session

這兩個的區別: cookie儲存在客戶端, session儲存在服務端並且關閉標籤頁後會被刪除

Cookie的大小限制: 4kb, session無限制

2.協商快取和強制快取

協商快取每一次都會攜帶快取去給伺服器確定資源是否改變,若未改變返回304狀態碼

強制快取則通過設定過期資訊來控制有效快取

前端安全

1.你知道哪些關於前端安全的知識

xss, csrf, 當時就知道這兩個

2.Xss原理是什麼,怎麼防範

當使用者輸入script標籤就有可能執行JavaScript程式碼,形成xss攻擊

防範: 對使用者輸入完全編碼,然後完全解碼,並且過濾掉危險內容

Xss答的不是很好,csrf就沒問

前端效能優化

只說了使用webpack外掛減小打包體積, 雪碧圖(因為減少http請求)

後來仔細想想還有webp圖片等圖片優化,合理使用快取, JS程式碼優化,預載入和懶載入

其他問題

1.你平常遇到問題都是怎麼解決的

應該是考察問題處理能力

答的不好,就說了百度,谷歌,stack overflow,翻閱書籍

應該還要說查官方文件等

2.我看你簡歷上寫的使用vue,你能說說雙向資料繫結嗎

object.defineProperty()實現

資料劫持, input標籤onchange變化導致資料變化

應該是考察觀察者模式,可是我沒說上來

3.vue元件資料傳遞

就說了父元件向子元件傳遞用props, 子元件向父元件傳遞也$emit方法

結束

應該是看我答的實在不咋地,四十多分鐘結束,讓我有什麼可以問他的嗎

我說因為我不是計算機專業的,你可以建議下我未來的學習嗎

面試官: 基礎還是要補一下, 比如Promise你能說出來怎麼用,但如果讓你實現呢,還有vue的$emit方法,這些都不能只會用,如果會用都會用,那所有人不就都一樣了,所以使用框架還要研究框架實現原理

目前就想起來這麼多,再想起來再補充

相關文章