前言
文章分享收集整理的百度,阿里,騰訊前端(實習)面試題,還有《【269頁】前端大廠面試題寶典》,主要內容概括:HTML,CSS,JavaScript,HTTP,TCP協議,瀏覽器,Vue,資料結構與演算法,
百度(實習)
- position
- bind、apply,call
- 手寫bind
- BFC
- csrf
- 跨域
- diff演算法
- 虛擬DOM
- 單位(像px,rem,em,vw等)
- SSR(怎么實作)
- ua和媒體查詢
- OSI七層模型
- 瀏覽器快取機制
- 怎么實作在專案中使用強快取,協商快取
- Event loop
- let、var、const區別
- 如何設計react組件
- 組件通信方式
- git命令
- 一個業務場景:a,b,c,d,要洗掉c的提交,git怎么操作(git revert)
- JWT
- 四大存盤和session
- rem
- 深拷貝的方法有哪些
- 實作瀑布流的方法
- 實作影片的效果
- 手寫深拷貝
阿里(實習)
- 做過什么專案?
- 平時用什么技術
- 介紹一下專案的難點
- 對于前端工程化,你怎么理解
- 協商快取
- 選擇器的優先級
- ES6接觸了什么特性?
- 講一講中序遍歷怎么實作
- 事件的冒泡和捕獲
- 執行緒和行程的區別?
- css水平垂直居中?
- 怎么用堆疊去實作佇列?
- 微任務和宏任務?
- 面向物件和面向程序?
- Vue資料回應式如何實作的?
- flex布局中的屬性?
- 二分查找
- JS的資料型別?
- 拿到變數如何判斷資料型別?
- 原型鏈了解嗎?
- 實作繼承的方式?
- TCP三次握手了解嗎?改成兩次握手可以嗎?
- 有哪些http狀態回應碼?
- 行程通信方式?
- 有哪些排序演算法?
- 冒泡排序的時間復雜度?
騰訊 (實習)
- 談專案
- 陣列能呼叫的方法
- 閉包,缺點
- ES5實作 let,閉包實作 let
- 根據中序和后序構造二叉樹
- 判斷有效括號
- 說說 vue 回應式原理
- http 有啥缺點嗎
- 瀏覽器輸入url到看到頁面發生了什么事
- MVC MVVM模式
- css布局
- JS動態加載腳本
- 講一下cookie?
- ES6的新特性
- 箭頭函式和普通函式的區別?
- 談談閉包
- es6的陣列去重方法
- 怎么判斷資料型別?各有什么區別
- 深拷貝
- 兩列布局的實作方式
- 防抖和節流區別
- 繼承的方式有哪些?優缺?
【269頁】前端大廠面試題寶典
HTML
- html 語意化
- canvas 相關
- svg和canvas的區別?
- html5有哪些新特性?
- 如何處理HTML5新標簽的瀏覽器兼容問題?
- 說說 title 和 alt 屬性
- HTML全域屬性(global attribute)有哪些

CSS
- 讓一個元素水平垂直居中,到底有多少種方案?
- 浮動布局的優點?有什么缺點?清除浮動有哪些方式?
- 使用display:inline-block會產生什么問題?解決方法?
- 布局題:div垂直居中,左右10px,高度始終為寬度一半
- 盒模型
- CSS如何進行品字布局?
- CSS如何進行圣杯布局
- CSS如何實作雙飛翼布局?
- 什么是BFC?
- 觸發條件
- BFC渲染規則
- 應用場景
- …

JavaScript
- JS原始資料型別有哪些?參考資料型別有哪些?
- null是物件嗎?為什么?
- ‘1’.toString()為什么可以呼叫?
- 0.1+0.2為什么不等于0.3?
- 什么是BigInt? 為什么需要BigInt?
- 如何創建并使用BigInt?
- typeof 是否能正確判斷型別?
- instanceof能否判斷基本資料型別?
- 能不能手動實作一下instanceof的功能?
- Object.is和===的區別?
- [] == ![]結果是什么?為什么?
- JS中型別轉換有哪幾種?
- == 和 ===有什么區別?
- 物件轉原始型別是根據什么流程運行的?
- 如何讓if(a == 1 && a == 2)條件成立?
- 什么是閉包?
- 閉包產生的原因?
- 閉包有哪些表現形式?
- 如何解決下面的回圈輸出問題?
- 原型物件和建構式有何關系?
- 能不能描述一下原型鏈?
- JS如何實作繼承?
- 函式的arguments為什么不是陣列?如何轉化成陣列?
- forEach中return有效果嗎?如何中斷forEach回圈?
- JS判斷陣列中是否包含某個值
- JS中flat—陣列扁平化
- 陣列中的高階函式
- 能不能實作陣列map方法 ?
- 能不能實作陣列reduce方法 ?
- 能不能寫一個完整的深拷貝?
- 資料是如何存盤的?
- V8 引擎如何進行垃圾記憶體的回收?
- 描述一下 V8 執行一段JS代碼的程序?
- 宏任務(MacroTask)引入
- nodejs 和 瀏覽器關于eventLoop的主要區別
- nodejs中的異步、非阻塞I/O是如何實作的?
- JS異步編程有哪些方案?為什么會出現這些方案?
- 能不能簡單實作一下 node 中回呼函式的機制?
- Promise 憑借什么消滅了回呼地獄?
- Promise 如何實作鏈式呼叫?
- 現Promise的 all 和 race
- 解釋一下async/await的運行機制
- …

HTTP
- HTTP 報文結構是怎樣的?
- HTTP有哪些請求方法?
- GET 和 POST 有什么區別?
- 如何理解 URI?
- 如何理解 HTTP 狀態碼?
- 簡要概括一下 HTTP 的特點?HTTP 有哪些缺點?
- 對 Accept 系列欄位了解多少?
- 對于定長和不定長的資料,HTTP 是怎么傳輸的?
- HTTP 如何處理大檔案的傳輸?
- HTTP 中如何處理表單資料的提交?
- HTTP1.1 如何解決 HTTP 的隊頭阻塞問題?
- 對 Cookie 了解多少?
- 如何理解 HTTP 代理?
- 如何理解 HTTP 快取及快取代理?
- 為什么產生代理快取?
- 源服務器的快取控制
- 客戶端的快取控制
- 什么是跨域?瀏覽器如何攔截回應?如何解決?
- …

TCP協議
- 能不能說一說 TCP 和 UDP 的區別?
- 說說 TCP 三次握手的程序?
- 為什么是三次而不是兩次、四次?
- 三次握手程序中可以攜帶資料么?
- 說說 TCP 四次揮手的程序
- 為什么是四次揮手而不是三次?
- 介紹一下 TCP 報文頭部的欄位
- 說說 TCP 快速打開的原理(TFO)
- 說說TCP報文中時間戳的作用?
- TCP 的超時重傳時間是如何計算的?
- 說一說 TCP 的流量控制
- 說說 TCP 的擁塞控制?
- …

瀏覽器
- 說一說瀏覽器快取?
- 說一說瀏覽器的本地存盤?各自優劣如何?
- 說一說從輸入URL到頁面呈現發生了什么?(網路)
- 談談你對重繪和回流的理解
- 能不能說一說XSS攻擊?
- HTTPS為什么讓資料傳輸更安全?
- 能不能實作事件的防抖和節流?
- 能不能實作圖片懶加載?

Vue
- 什么是MVVM?
- mvvm和mvc區別?它和其它框架(jquery)的區別是什么?哪些場景適合?
- 組件之間的傳值?
- Vue 雙向系結原理
- 描述下 vue 從初始化頁面–修改資料–重繪頁面 UI 的程序?
- 虛擬 DOM 實作原理
- Vue 中 key 值的作用?
- Vue 的生命周期
- Vue 組件間通信有哪些方式?
- vue 中怎么重置 data?
- 組件中寫 name 選項有什么作用?
- vue-router 有哪些鉤子函式?
- route 和 router 的區別是什么?
- 說一下 Vue 和 React 的認識,做一個簡單的對比
- Vue 的 nextTick 的原理是什么?
- Vuex 有哪幾種屬性?
- …

資料結構與演算法
- 鏈表
- 堆疊和佇列
- 二叉樹
鏈表
- 簡單的反轉鏈表
- 區間反轉
- 兩個一組翻轉鏈表
- K個一組翻轉鏈表
- 如何檢測鏈表形成環?
- 如何找到環的起點
- 合并兩個有序鏈表
- 合并 K 個有序鏈表
- 判斷回文鏈表
堆疊和佇列
- 有效括號
- 多維陣列 flatten
- 普通的層次遍歷
- 二叉樹的鋸齒形層次遍歷
- 二叉樹的右視圖
- 完全平方數
- 單詞接龍
- 優先佇列
- 關于堆的說明
- 實作一個最大堆
- 實作優先佇列
- 前 K 個高頻元素
- 合并 K 個排序鏈表
- 什么是雙端佇列?
- 滑動視窗最大值
- 堆疊實作佇列
- 佇列實作堆疊
二叉樹
- 前序遍歷 / 中序遍歷 / 后序遍歷
- 最大深度 / 最小深度
- 對稱二叉樹
- 二叉樹的最近公共祖先
- 二叉樹的直徑
- 二叉樹的所有路徑
- 二叉樹的最大路徑和
…

篇幅有限,需要面試題可以【點擊這里】免費獲取**【269頁】前端大廠面試題寶典,【90頁】2021前端位元組跳動真題決議** PDF完整版(包括題目與決議),
【90頁】2021前端位元組跳動真題決議:

轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/280717.html
標籤:其他
上一篇:用 JavaScript 實作手勢庫之第一篇 — 前端組件化
下一篇:這個頁面怎么做,求大佬。
