位元組面試題分享,了解校招,還有前端校招面試題分享,不容錯過,
位元組跳動(校招)
一面:
- TCP、UDP是什么,區別,應用
- 什么是位元組流,什么是資料報
- TCP為啥可靠
- 超時重傳、累計確認的程序
- HTTP跟TCP的聯系
- http通信程序
- http頭部欄位,平時在專案中有應用過嗎,具體說一說
- Cookie、localStorage、sessionStorage用過嗎?說一說他們的聯系區別與應用
- 每次請求都會帶cookie嗎?什么時候會帶
- cookie維持登錄態是怎么做到的
- 你用cookie干過什么
- cookie保存在哪里
- 用戶重繪界面后,服務端如何判斷這個用戶還在登錄狀態
- XSS與CSRF了解多少,原理,如何預防
- 演算法:輸入兩個數字x,y;輸出一個只包含字母a和字母b的隨機字串
要求:字串中必須有x個a,y個b ;輸出的字串中不能出現aaa和bbb
二面:
- 由一個class引申出的眾多問題
- 面試官給出了一個class定義的類,提問:找出其中錯誤的地方,為什么錯了,改正
- 說一下new出的物件有哪些實體屬性和方法以及原型屬性和方法
- 說說console.log(window.B)輸出什么(B是題中定義的class)
- 如果class中回傳了一個1,會對new出的物件產生影響嗎,為什么,什么時候會產生影響
- 如何在實體化一個物件時傳參,考慮已知引數數量和未知兩種情況(考察es6的擴展運算子···)
- for…of了解嗎,哪些資料結構能用,如果我想用它遍歷物件屬性,怎么實作(
- LCA:尋找多叉樹的最近的公共祖先節點
- 匯出一個模塊:要求該模塊用localStorage實作cookie的過期功能
- 用for實作reduce
- 做過哪些專案,最大的識訓是什么
- 接觸前端多久了
- 介紹一下vue
- 說一下雙向系結原理
- v-if和v-show的區別
- 虛擬DOM,vue-router
- echarts用過哪些,他的實作有沒有了解過
- DOM和BOM介紹一下,他們的聯系是什么
- 問輸出:
let obj = {
name: "bytedance",
fun: function(){
console.log(this.name);
}
}
let a = obj.fun;
a(); // undefined
obj.fun(); // "bytedance"
- 有沒有用過fetch,get、post和put的區別
- 跨域的方法(越多越好)
- chrome除錯工具都用過哪些功能
- CSS實作兩欄布局,左邊固定寬度,右邊自適應
- 演算法字串解碼

了解校招
知己知彼才能百戰百勝,在準備校招之前,我們先要了解校招,
什么是校招?
校招,全稱校園招聘,指企業招聘那些即將畢業的學生,校招主要分為三個部分:簡歷篩選,筆試,面試,
對比社招,以應屆生身份參加校招有以下幾個優勢:
- 校招更注重基礎,應屆畢業生普遍缺少作業經驗,但基礎知識掌握較好、學習能力強,
- 校招hc多,多達幾千,少則幾百,公司會分崗位分地區預留固定數量hc,相比社招機會多多,
校招時間規劃:
- **春招:**年初陸續開始, 經歷過秋招失敗之后,別松懈,總結秋招經驗,關注春招動態,

- **暑期實習:**大三或研二下學期的3月初開始,6~8月為實習時間,

- **秋招:**7月初提前批開始,10月底隨著各學校三方下發陸續結束,

調整心態,面對春招
-
以積極的心態去面對校招
校招并不可怕,它為我們這些即將踏入社會的年輕人們提供了更多的機會,
-
要自信
在校招面試時,我們通常會不自覺地認為自己很差,甚至不敢合理地提出自己的訴求,校招是一個雙向選擇程序,不僅公司有選擇權,我們同樣有選擇權;另一方面,當你用充滿自信的語氣去回答面試官時,對方會更愿意相信你已經做好了充分的就職準備
-
學會搜集資訊
無論是簡歷投遞,還是在面試的程序中,掌握崗位的最新資訊,多與同崗位的小伙伴們交流, -
從基礎和實戰經驗兩方面準備校招
復習鞏固基礎知識,通過專案累積經驗,
學習路線
篇幅有限,需要面試題資料(包括面試題答案)可以點擊這里,免費獲取所有面試題資料,學習路線圖,
HTML基礎
HTML是頁面中內容的載體,可以展示開發者想要用戶瀏覽的任何文字、圖片、音頻資訊,對于HTML的各類標簽,不僅要掌握日常開發中經常碰到的,也要慢慢積累那些不常用標簽,塊級、行內元素的定義以及二者相互轉換幾乎是每場技術一面常考問題,
- 瀏覽器頁面有哪三層構成,分別是什么,作用是什么?
- HTML5的優點與缺點?
- Doctype作用? 嚴格模式與混雜模式如何區分?它們有何意義?
- HTML5有哪些新特性、移除了哪些元素?
- 你做的網頁在哪些瀏覽器測驗過,這些瀏覽器的內核分別是什么?
- 每個HTML檔案里開頭都有個很重要的東西,Doctype,知道這是干什么的嗎?
- 說說你對HTML5認識?(是什么,為什么)
- 對WEB標準以及W3C的理解與認識?
- HTML5行內元素有哪些,塊級元素有哪些, 空元素有哪些?
- 什么是WebGL,它有什么優點?
- 請你描述一下 cookies,sessionStorage 和 localStorage 的區別?
- 說說你對HTML語意化的理解?
- link和@import的區別?
- 說說你對SVG理解?
- HTML全域屬性(global attribute)有哪些?
- 說說超鏈接target屬性的取值和作用?
- data-屬性的作用是什么?
- 介紹一下你對瀏覽器內核的理解?
- 常見的瀏覽器內核有哪些?
- iframe有那些缺點?
- Label的作用是什么,是怎么用的?
- 如何實作瀏覽器內多個標簽頁之間的通信?
- 如何在頁面上實作一個圓形的可點擊區域?
- title與h3的區別、b與strong的區別、i與em的區別?
- 實作不使用 border 畫出1px高的線,在不同瀏覽器的標準模式與怪異模式下都能保持一致的效果?

CSS基礎
在校招準備時,掌握CSS各類常用的屬性是必要的,其中浮動、清除浮動以及定位更是必考點,CSS盒模型,CSS各類選擇器也是面試官常考問題,各個選擇器優先級順序、多個選擇器組合時優先級比重的計算都是必須要掌握的,
- 解釋一下CSS的盒子模型?
- 請你說說CSS選擇器的型別有哪些,并舉幾個例子說明其用法?
- 請你說說CSS有什么特殊性?(優先級、計算特殊值)
- 要動態改變層中內容可以使用的方法?
- 常見瀏覽器兼容性問題與解決方案?
- 列出display的值并說明他們的作用?
- 如何居中div, 如何居中一個浮動元素?
- CSS中 link 和@import 的區別是?
- 請列舉幾種清除浮動的方法(至少兩種)?
- block,inline和inlinke-block細節對比?
- 什么叫優雅降級和漸進增強?
- 說說浮動元素會引起的問題和你的解決辦法
- 你有哪些性能優化的方法?
- 為什么要初始化CSS樣式?
- 解釋下浮動和它的作業原理?清除浮動的技巧?
- CSS樣式表根據所在網頁的位置,可分為哪幾種樣式表?
- 談談你對CSS中刻度的認識?
- 請你說說em與rem的區別?
- 請你說說box-sizing屬性的的用法?
- 瀏覽器標準模式和怪異模式之間的區別是什么?
- 怪異Quirks模式是什么,它和標準Standards模式有什么區別?
- 說說你對邊距折疊的理解?
- 行內與塊級標簽有何區別?
- 說說隱藏元素的方式有哪些?
- 為什么重置瀏覽器默認樣式,如何重置默瀏覽器認樣式?
- 談談你對BFC與IFC的理解?(是什么,如何產生,作用)
- 說說你對頁面中使用定位(position)的理解?
- 如何解決多個元素重疊問題?
- 頁面布局的方式有哪些?
- overflow :hidden是否形成新的塊級格式化背景關系?

JavaScript
JavaScript主要是為Web頁面添加互動行為,基礎知識超高頻考點有資料型別以及判斷方法、閉包、塊級作用域、函式提升與變數提升、原型鏈、JS繼承、變數深淺拷貝等等,除此之外還有很多零碎知識點都是前端開發必須掌握的,
-
原型鏈
(1) 創建物件有幾種方法?
(2) instanceof的原理? -
類
(1) 類的宣告?
(2) 生成實體?宣告一個類,怎么生成類的實體? -
繼承
(1) call、apply的共同點與區別?
(2) 用javascript實作物件的繼承/ 繼承的幾種方式,這幾種方式的優缺點? -
作用域
(1) 說說你對作用域鏈的理解?
(2) this? -
JS閉包
(1) 閉包的特征?
(2) 閉包應用場景?
(3) 實際開發中閉包的應用? -
JS運行機制,單執行緒,異步
(1) 如何理解js的單執行緒?
(2) js為什么是單執行緒的?
(3) 同步和異步的區別是什么?分別舉一個同步和異步的例子?
(4) 何時需要異步?
(5) 什么是任務佇列?
(6) 請說出下列的值?
(7) 堆疊和佇列的區別?
(8) 堆疊和堆的區別?
(9) 什么是event loop?
(10) event-loop流程?
(11) 哪些陳述句會放入異步任務佇列中?
(12) 何時被放入任務佇列? -
JS資料型別
(1) js使用typeof能得到的哪些型別?
(2) 如何準確判斷一個變數是陣列型別?
(3) js變數按照存盤方式區分為哪些型別,并描述其特點?
(4) null和undefined的區別?
(5) undefined的典型用法?
(6) null的典型用法?
(7) chrome60+瀏覽器中,a===b的是哪項? -
JS的內置函式,內置物件
(1) js中有哪些內置函式/ 資料封裝類物件?
(2) js中有哪些內置物件?
(3) js變數按照存盤方式區分為哪些型別,并描述其特點?
(4) 字串方法/ String物件方法?
(5) 陣列方法/ Array物件方法?
(6) 陣列API?
(7) 物件API? -
陣列去重
(1) 陣列怎么去重?
(2) 對上述陣列去重方法速度比較?
(3) 一句話陣列去重?
(4) 保留陣列中非重復元素?
(5) 保留陣列中重復元素? -
記憶體泄露
(1) 哪些操作會造成記憶體泄漏?
(2) js記憶體泄漏的解決方式 -
DOM
(1) dom是哪種基本的資料結構?
(2) dom操作的常用api有哪些?
(3) dom節點的attribute和property有何區別?
(4) dom結構操作/ 怎樣添加、移除、移動、復制、創建和查找節點/ dom操作的
常用api?
(5) dom事件的級別?
(6) dom事件模型?
(7) dom事件流?
(8) 描述dom事件捕獲的具體流程?
(9) event物件的常見應用?
(10) 自定義事件/ 模擬事件?
(11) 通用事件系結/ 撰寫一個通用的事件監聽函式?
(12) dom樹、render樹的關系/ dom樹、render樹的區別(第2、3條)? -
BOM
(1) bom常用屬性? -
通信
(1) 什么是同源策略及限制?
(2) 前后端如何通信?
(3) 跨域通信的幾種方式?
(4) jsonp實作?
(5) 可以跨域的三個標簽?
(6) 三個可跨域的標簽的使用場景? -
Ajax
(1) ajax請求的原理/ 手寫一個ajax請求?
(2) readyState?
(3) ajax異步與同步的區別?
(4) ajax傳遞中文用什么方法? -
錯誤監控
(1) 前端錯誤的分類/ 如何檢測js錯誤/ 如何保證你的產品質量?
(2) 錯誤的捕獲方式?
(3) 上報錯誤的基本原理? -
模塊化
(1) amd、cmd區別?
(2) amd、commonJs區別? -
虛擬DOM
(1) vdom的如何應用,核心api是什么?
(2) 虛擬dom轉換成真實dom?
(3) diff實作程序?

瀏覽器相關
頁面在瀏覽器中顯示時,瀏覽器針對頁面中的HTML、CSS、JS代碼,以及各類圖片、音瞥澩有特定的渲染機制,同時頁面資源請求是通過瀏覽器代為執行的,出于安全考慮,瀏覽器制定了同源策略,當請求方與目的地不同源則需要跨域請求資源,約有5-6種跨域方案,實作原理不同,也有不同方面的優缺點,此類問題幾乎是筆試中問答題的必考題,
- 瀏覽器存盤的方式有哪些
- 瀏覽器內核的理解
- HTTP 的請求方式場景
- HTTP狀態碼
- 從瀏覽器地址欄輸入URL后發生了什么?
- 請你談談Cookie的優缺點
- cookies , sessionStorage 和 localStorage 的區別
- 瀏覽器快取
- 瀏覽器渲染的步驟
- GET 和 POST 請求的區別
- 什么是reflow
- 什么時候會導致reflow發生呢?
- 減少reflow對性能的影響

框架相關
原生JS雖能實作絕大部分功能,但要么就是過于繁瑣,要么就是存在缺陷,故絕大多數開發者都會首選框架開發方案,現階段較熱門是React、Vue兩大框架,兩者作業原理上存在共通點,也存在一些不同點,對于校招來說,不需要兩個框架都學得特別熟,一般面試官會針對你簡歷中寫的框架進行提問,
在框架方面,生命周期、鉤子函式、虛擬DOM這些基本知識是必須要掌握的,在學習的程序可以結合框架的官方檔案
Vue框架
知識要點:
1. vue-cli工程
2. vue核心知識點
3. vue-router
4. vuex
5. http請求
6. UI樣式
7. 常用功能
8. MVVM設計模式

React框架
知識要點:
1. 基本知識
2. React 組件
3. React Redux
4. React 路由

計算機網路
網路技術是前端頁面資料互動的橋梁,在前端崗的校招中,除了前端方面的知識以外,計算機網路方面算是第二大重點了,
其中較為常考的主要有:OSI七層模型、各層中的傳輸協議、TCP/UDP區別、TCP三次握手四次揮手、HTTP/HTTPS區別、HTTP各版本、HTTP報文結構等等,這類知識比較枯燥繁瑣,在學的時候可以通過畫圖來加強記憶,
- TCP 建立連接的三次握手程序
- cdn 原理
- HTTP 的頭部包含哪些內容,常見的請求方法(我為什么要 說后面的 options,head,connect)
- 請求方法 head 特性
- HTTP 狀態碼,301和302 有什么具體區別,200 和 304 的 區別
- OSI 七層模型
- TCP 和 UDP 的區別,為什么三次握手四次揮手
- HTTP 快取機制
- websocket 和 ajax 的區別是什么,websocket 的應用場景有哪些
- TCP/IP 的網路模型
- 知道什么跨域方式嗎,jsonp 具體流程是什么,如何實作 原生 Jsonp 封裝,優化,對于 CORS,服務器怎么判斷它該不 該跨域呢
- 怎么生成 token,怎么傳遞
- 作業系統行程和執行緒的區別
- 什么是行程執行緒
- 執行緒的那些資源共享,那些資源不共享
- 作業系統里面行程和執行緒的區別
- Linux 查詢行程指令,查詢埠,殺行程
- 行程間的通信方式有哪些?

資料結構與演算法
這一塊在筆試、面試的代碼題中考核較多,其中常考的資料結構主要有:陣列、鏈表、佇列、堆疊、Set、Map、哈希表等,不同資料結構有不同的方法以及儲存原理,這些算是技術崗的必備知識,演算法部分主要分為兩大塊,排序演算法與一些其他演算法題,
排序演算法根據考頻高低主要有:快速排序、歸并排序、堆排序、冒泡排序、插入排序、選擇排序、希爾排序、桶排序、基數排序、Timsort這十種,這類考核點要么是演算法的時間、空間復雜度、穩定度,要么是直接手寫代碼,故在理解演算法原理的同時,對JS語言版的排序演算法代碼也要加強記憶,
- 二叉樹層序遍歷
- B 樹的特性,B 樹和 B+樹的區別
- 尾遞回
- 如何寫一個大數階乘?遞回的方法會出現什么問題?
- 把多維陣列變成一維陣列的方法
- 知道的排序演算法 說一下冒泡快排的原理
- Heap 排序方法的原理?復雜度?
- 幾種常見的排序演算法,手寫
- 陣列的去重,盡可能寫出多個方法
- 如果有一個大的陣列,都是整型,怎么找出最大的前 10 個數
- 知道資料結構里面的常見的資料結構
- 找出陣列中第 k 大的陣列出現多少次,比如陣列【1,2, 4,4,3,5】第二大的數字是 4,出現兩次,所以回傳 2
- 合并兩個有序陣列
- 給一個數,去一個已經排好序的陣列中尋找這個數的位 置(通過快速查找,二分查找)
- …

篇幅有限,需要面試題資料(包括面試題答案)可以點擊這里,免費獲取所有面試題資料,學習路線圖,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/266689.html
標籤:其他
