面試基本信息
1.開始時間:3點(其實3點20)
2.時長: 2小時
3.工作地點: 深圳
4.實習崗位:web前端開發(pcg事業羣)
5.面試時間:3月18日
6.面試平臺:牛客網
面試官問題
一.計算機網絡
-
介紹下自己,順便詳細介紹下項目
大概內容是:項目描述+項目負責模塊+項目亮點+項目中的定位 -
url到頁面的過程
DNS解析->TCP建立連接->發送http請求->緩存機制->服務器端處理->返回給客戶端->TCP中止連接 -
Get與post請求區別
傳參方式,作用,參數限制,post請求在某些遊覽器進行兩次tcp請求,get請求默認緩存等方面 -
tcp與udp的區別
從端口,頭部,面向連接,傳輸數據格式,應用等方面
二.操作系統
-
進程與線程的區別
一個應用至少一個進程,一個進程至少一個線程,然後資源調度分配與併發方面 -
進程間的通訊
管道、信號、信號量、套接字、消息隊列、共享內存
三.數據結構
-
棧和堆
棧先進後出,然後從js的執行棧說了下應用。堆是對於二叉樹的,然後從堆排序方面說了下 -
二叉樹的遍歷
先序,中序,後序,廣度優先搜索,然後分別介紹了下算法實現 -
排序算法
快速排序,插入排序,堆排序,冒泡排序等,介紹了快排和冒泡排序,並介紹了時間複雜度
四 .JS
-
es6新語法
擴展運算符,箭頭函數,模板字符串,類,數組方法等,並講了下應用場景 -
面向對象的三大特徵
多態,繼承,封裝,將一些如何實現 -
New的整個過程
先創建個新對象,並且與new後面對象的原型關聯,this指向new後面的對象,執行new後面對象的構造函數,並且獲取構造函數裏面添加的屬性,然後返回新對象。 -
面向對象編程的含義
從封裝方法開始介紹,然後介紹了一些好處等 -
指針到引用
指針是指向的是資源地址空間,引用是對一段內容的引用,利用了共享充電寶來解釋引用,共用同一份東西。 -
閉包是什麼
一個函數使用另外個函數的變量,介紹閉包功能啥的 -
var,let,const的區別
從js解析開始到執行過程中的方面解釋的區別,然後const定義變量必須要賦值,簡單數據類型不可更改,引用對象可以改裏面的內容,只要不改變其引用即可。 -
let,var,const可以定義一樣的數據類型嗎
let與const不行,var可以
五.Vue
-
介紹下vue
vue就是一個對象,然後從源碼開始解釋其機制,然後重點介紹了訂閱者/發佈者與mvvm,然後具體介紹了computed的源碼實現機制,來講述訂閱者/發佈者機制。 -
寫一個頁面,列表項爲items,每一項有添加、修改、刪除功能
考察組件化與vue代碼能力
六.算法題
- 給定一串數字,尋找還有其中含有對稱的數字,就是迴文
剛開始想到的是從頭到尾遍歷,然後想出通過二分查找的方式,向左向右查找,問了兩個算法的時間複雜度 - Nn的正方形,裏面放有nn個邊長爲1的正方形,有多少個正方形,有多少個長方形
自己找規律,給出答案,並說出思路(長方形數量沒問),答案一個是1^2 + 2^2+…
+n^2,長方形是C(2,n+1)*C(2,n+1) - 實現數組的去重算法
綜述
全程還是非常友好的,不過可能選的部門是有點偏後端的,中途問我知道什麼後端框架,然後問了下會node.js中間件嗎,然後問了下會數據庫和linux方面知識嗎,當時直接說的只是瞭解,就沒細問,然後問了下在項目中擔任的角色,項目的優點,後面的規劃。第一面還是很順利的,大體都回答上了,不過二面有點慘,問了些dns服務器,然後數據庫構建,然後一些問題的解決辦法,都沒回答上來,算法題也沒寫出來,涼透了。