最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

2026前端面試題及答案總結(jié)大全(最新版)

 更新時間:2026年06月01日 10:04:04   作者:阿芯愛編程  
這篇文章主要介紹了2026前端面試題及答案總結(jié)的相關(guān)資料,通過示例代碼講解了HTML/CSS盒模型、CSS選擇器優(yōu)先級計算、塊級格式化上下文、JavaScript事件循環(huán)機制、ES6中變量聲明差異、Promise原理及實現(xiàn)、React與Vue響應式機制與性能優(yōu)化手段等內(nèi)容,需要的朋友可以參考下

HTML/CSS 部分

1. 什么是盒模型?標準盒模型和IE盒模型的區(qū)別是什么?

答案: 盒模型是CSS中用于布局的基本概念,每個元素都被表示為一個矩形盒子,由內(nèi)容(content)、內(nèi)邊距(padding)、邊框(border)和外邊距(margin)組成。

區(qū)別:

  • 標準盒模型(W3C盒子模型)widthheight只包含內(nèi)容(content)
  • IE盒模型(怪異模式盒子模型)widthheight包含內(nèi)容(content)、內(nèi)邊距(padding)和邊框(border)

可以通過box-sizing屬性切換:

/* 標準盒模型 */
box-sizing: content-box;

/* IE盒模型 */
box-sizing: border-box;

2. CSS選擇器優(yōu)先級如何計算?

答案: CSS選擇器優(yōu)先級從高到低:

  1. !important
  2. 內(nèi)聯(lián)樣式(style="")
  3. ID選擇器(#id)
  4. 類選擇器(.class)、屬性選擇器([type="text"])、偽類(:hover)
  5. 元素選擇器(div)、偽元素(::before)
  6. 通配符(*)、關(guān)系選擇器(>, +, ~)

計算規(guī)則:

  • ID選擇器:100
  • 類/屬性/偽類:10
  • 元素/偽元素:1
  • 相加比較,值大的優(yōu)先級高

3. BFC是什么?如何創(chuàng)建BFC?

答案: BFC(Block Formatting Context)塊級格式化上下文,是Web頁面的可視化CSS渲染的一部分,是一個獨立的渲染區(qū)域。

創(chuàng)建BFC的方法:

  • float不為none
  • position為absolute或fixed
  • display為inline-block、table-cell、table-caption、flex、inline-flex
  • overflow不為visible

BFC特性:

  1. 內(nèi)部盒子垂直排列
  2. margin會重疊在同一個BFC中
  3. BFC區(qū)域不會與float box重疊
  4. BFC是獨立容器,外部不影響內(nèi)部

JavaScript部分

4. JavaScript中的事件循環(huán)機制是怎樣的?

答案: JavaScript是單線程語言,通過事件循環(huán)機制實現(xiàn)異步。事件循環(huán)由以下部分組成:

  1. 調(diào)用棧(Call Stack):執(zhí)行同步代碼的地方
  2. 任務隊列(Task Queue)
    • 宏任務(macrotask):script整體代碼、setTimeout、setInterval、I/O、UI渲染等
    • 微任務(microtask):Promise.then/catch/finally、MutationObserver等

執(zhí)行順序:

  1. 執(zhí)行同步代碼(宏任務)
  2. 執(zhí)行過程中遇到異步任務:
    • 微任務放入微任務隊列
    • 宏任務放入宏任務隊列
  3. 同步代碼執(zhí)行完畢,檢查微任務隊列并全部執(zhí)行
  4. UI渲染(如果需要)
  5. 取出一個宏任務執(zhí)行,重復上述過程

5. ES6中l(wèi)et/const與var的區(qū)別?

答案:

varletconst
作用域函數(shù)作用域塊級作用域塊級作用域
變量提升暫時性死區(qū)暫時性死區(qū)
重復聲明允許不允許不允許
全局屬性會成為不會成為不會成為
初始值可不設可不設必須設置
修改值可以可以不可以

6. Promise的原理是什么?手寫一個簡單的Promise實現(xiàn)。

答案: Promise是一種異步編程解決方案,主要解決回調(diào)地獄問題。它有三種狀態(tài):pending、fulfilled、rejected。

簡單實現(xiàn):

class MyPromise {
  constructor(executor) {
    this.state = 'pending';
    this.value = undefined;
    this.reason = undefined;
    this.onFulfilledCallbacks = [];
    this.onRejectedCallbacks = [];
    
    const resolve = (value) => {
      if (this.state === 'pending') {
        this.state = 'fulfilled';
        this.value = value;
        this.onFulfilledCallbacks.forEach(fn => fn());
      }
    };
    
    const reject = (reason) => {
      if (this.state === 'pending') {
        this.state = 'rejected';
        this.reason = reason;
        this.onRejectedCallbacks.forEach(fn => fn());
      }
    };
    
    try {
      executor(resolve, reject);
    } catch (err) {
      reject(err);
    }
  }
  
  then(onFulfilled, onRejected) {
    if (this.state === 'fulfilled') {
      onFulfilled(this.value);
    }
    
    if (this.state === 'rejected') {
      onRejected(this.reason);
    }
    
    if (this.state === 'pending') {
      this.onFulfilledCallbacks.push(() => onFulfilled(this.value));
      this.onRejectedCallbacks.push(() => onRejected(this.reason));
    }
  }
}

React/Vue框架部分

7.React中setState是同步還是異步的?

答案: 在React中,setState的行為表現(xiàn)有時"異步",有時"同步":

1.大部分情況下表現(xiàn)為異步(批量更新優(yōu)化):

  • React合成事件處理函數(shù)中(setTimeout/setInterval/Promise回調(diào)等原生事件外)
  • React生命周期函數(shù)中

在這些情況下React會將多個setState合并為一個更新以提高性能。

2.某些情況下表現(xiàn)為同步:

  • setTimeout/setInterval回調(diào)中
  • DOM原生事件處理函數(shù)中
  • Promise.then等異步代碼中

React18后所有情況都默認批量處理(auto batching),如需強制同步可使用flushSync。

原理原因: React通過isBatchingUpdates標志控制是否批量更新,合成事件和生命周期會開啟此標志。

8.Vue的響應式原理是怎樣的?

答案: Vue2.x使用Object.defineProperty,Vue3使用Proxy實現(xiàn)響應式:

Vue2實現(xiàn)原理: 1.數(shù)據(jù)劫持:通過Object.defineProperty對data對象每個屬性添加getter/setter追蹤變化。

Object.defineProperty(obj, key, { 
 get() { //依賴收集 },
 set(newVal) { //觸發(fā)更新 } 
})

2.依賴收集:在getter中將觀察者Watcher實例添加到Dep訂閱器中。 3.派發(fā)更新:setter被觸發(fā)時通知Dep中的所有Watcher重新計算并更新視圖。 缺點:無法檢測對象屬性的添加刪除,數(shù)組變動需特殊處理。

Vue3使用Proxy改進:

new Proxy(data, { 
 get(target, key){},
 set(target, key, value){},
 deleteProperty(target, key){}
})

優(yōu)勢:可直接監(jiān)聽對象/數(shù)組的各種變化;無需遞歸遍歷整個對象初始化。

##性能優(yōu)化相關(guān)

9.Webpack有哪些常見的性能優(yōu)化手段?

構(gòu)建速度優(yōu)化:

1.縮小文件搜索范圍

resolve:{ modules:[path.resolve(__dirname,'node_modules')] },
module:{ noParse:/jquery|lodash/ } //忽略未模塊化庫的解析  

2.緩存loader結(jié)果(cache-loader/babel-loader?cacheDirectory=true)

3.多進程構(gòu)建(thread-loader/happyPack)

4.DllPlugin預編譯不變模塊

5.合理使用sourceMap(開發(fā)環(huán)境cheap-module-eval-source-map)

打包體積優(yōu)化:

1.Tree Shaking(ES6模塊+production模式+sideEffects配置)

2.Code Splitting:

optimization:{ splitChunks:{ chunks:'all' } },
entry:{ main:'./src/main.js', vendor:['lodash'] }  

3.Scope Hoisting(ModuleConcatenationPlugin)

4.UglifyJsPlugin壓縮混淆代碼

5.Gzip壓縮(compression-webpack-plugin)

6.CDN引入外部資源(externals)

7.PurgeCSS移除無用CSS

8.OptimizeCSSAssetsPlugin壓縮CSS

9.ImageMinimizerPlugin壓縮圖片

10.babel按需加載polyfill

算法與編程題

10.[編程題]手寫防抖和節(jié)流函數(shù)

防抖(debounce):高頻觸發(fā)時只在停止觸發(fā)后執(zhí)行一次

function debounce(fn, delay){
 let timer=null;
 return function(...args){
   clearTimeout(timer);  
   timer=setTimeout(()=>fn.apply(this,args),delay);
 }
}

節(jié)流(throttle):高頻觸發(fā)時每隔一段時間執(zhí)行一次

function throttle(fn, interval){
 let lastTime=0;  
 return function(...args){
   const now=Date.now();
   if(now-lastTime>=interval){
     fn.apply(this,args);  
     lastTime=now;  
   }  
 } 
}

//定時器版本節(jié)流:
function throttle(fn,delay){  
 let timer=null;   
 return function(...args){   
   if(!timer){     
     timer=setTimeout(()=>{      
       fn.apply(this,args);       
       timer=null;      
     },delay);     
   }   
 };   
}   

HTTP與瀏覽器相關(guān)

11.HTTPS的工作原理是什么?

HTTPS=HTTP+TLS/SSL加密層工作流程:

1.Client發(fā)送支持的加密算法列表+隨機數(shù)A給Server

2.Server選擇加密算法+發(fā)送數(shù)字證書+隨機數(shù)B給Client

3.Client驗證證書有效性(頒發(fā)機構(gòu)/過期時間/域名匹配),生成隨機數(shù)C并用證書公鑰加密發(fā)送給Server

4.Server用私鑰解密獲取隨機數(shù)C

5.Client和Server都用ABC三個隨機數(shù)生成對稱加密密鑰(session key)

6.HTTP通信開始使用該密鑰加密數(shù)據(jù)

關(guān)鍵點: -CA機構(gòu)驗證服務器身份防止中間人攻擊
-非對稱加密交換對稱密鑰提高安全性又保證性能
-TLS握手階段采用非對稱加密通信階段采用對稱加密

安全特性: 機密性(對稱加密)+完整性(MAC校驗)+身份認證(X509證書鏈)

總結(jié)

到此這篇關(guān)于2026前端面試題及答案總結(jié)大全的文章就介紹到這了,更多相關(guān)2026前端面試題及答案內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 微信小程序把百度地圖坐標轉(zhuǎn)換成騰訊地圖坐標過程詳解

    微信小程序把百度地圖坐標轉(zhuǎn)換成騰訊地圖坐標過程詳解

    這篇文章主要介紹了微信小程序把百度地圖坐標轉(zhuǎn)騰訊地圖坐標過程詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-07-07
  • 微信小程序?qū)崿F(xiàn)漸入漸出動畫效果

    微信小程序?qū)崿F(xiàn)漸入漸出動畫效果

    這篇文章主要給大家介紹了關(guān)于微信小程序?qū)崿F(xiàn)漸入漸出動畫效果的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用微信小程序具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-06-06
  • 基于Swiper實現(xiàn)移動端頁面圖片輪播效果

    基于Swiper實現(xiàn)移動端頁面圖片輪播效果

    這篇文章主要為大家詳細介紹了基于Swiper實現(xiàn)移動端頁面圖片輪播效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • 實現(xiàn)JavaScript中數(shù)據(jù)響應的方法總結(jié)

    實現(xiàn)JavaScript中數(shù)據(jù)響應的方法總結(jié)

    JavaScript 數(shù)據(jù)響應是一種重要的前端開發(fā)概念,是指在應用程序中的數(shù)據(jù)發(fā)生變化時,能夠自動更新與這些數(shù)據(jù)相關(guān)的用戶界面(UI)部分的能力,本文我們來總結(jié)一下目前可以簡單實現(xiàn) JavaScript 中的數(shù)據(jù)響應的方法,需要的朋友可以參考下
    2023-09-09
  • 讓你更好使用Typescript的11個技巧分享

    讓你更好使用Typescript的11個技巧分享

    學習Typescript通常是一個重新發(fā)現(xiàn)的過程。本文將總結(jié)幾個技巧,幫助你充分發(fā)揮語言的潛力,感興趣的小伙伴可以跟隨小編一起學習一下
    2023-01-01
  • js實現(xiàn)動態(tài)改變radio狀態(tài)的方法

    js實現(xiàn)動態(tài)改變radio狀態(tài)的方法

    下面小編就為大家分享一篇js實現(xiàn)動態(tài)改變radio狀態(tài)的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-02-02
  • javascript實現(xiàn)簡單計算器效果【推薦】

    javascript實現(xiàn)簡單計算器效果【推薦】

    下面小編就為大家?guī)硪黄猨avascript實現(xiàn)簡單計算器效果【推薦】。小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考
    2016-04-04
  • js 遞歸和定時器的實例解析

    js 遞歸和定時器的實例解析

    本文主要介紹了js遞歸和定時器的相關(guān)知識。具有很好的參考價值,下面跟著小編一起來看下吧
    2017-02-02
  • 基于Turn.js 實現(xiàn)翻書效果實例解析

    基于Turn.js 實現(xiàn)翻書效果實例解析

    最近項目經(jīng)理我個項目練練手,其項目需求是要實現(xiàn)翻書效果,看到這個需求后,我真是懵了,這咋整,我可是java出身的啊,這個問題真是難住我了,后來有同事的指導,問題順利解決,下面小編把學習心得分享,感興趣的朋友可以參考下
    2016-06-06
  • 微信小程序功能之全屏滾動效果的實現(xiàn)代碼

    微信小程序功能之全屏滾動效果的實現(xiàn)代碼

    最近小編做項目遇到這樣的需求,要求實現(xiàn)一個全屏滾動的效果,在網(wǎng)上找了實例代碼,但是不是很完美,小編又結(jié)合自己的知識給大家補充下,對微信小程序全屏滾動效果的實例代碼感興趣的朋友參考下本文吧
    2018-11-11

最新評論

涡阳县| 平山县| 沧州市| 吉木乃县| 宁化县| 英山县| 绥江县| 龙胜| 五常市| 苏尼特左旗| 鹤岗市| 临颍县| 浮梁县| 沂南县| 晴隆县| 含山县| 肇州县| 余庆县| 临朐县| 泰和县| 白沙| 湖口县| 江城| 通江县| 交城县| 富顺县| 滨海县| 望谟县| 红桥区| 湘阴县| 香河县| 惠水县| 永清县| 固镇县| 咸阳市| 开封县| 武汉市| 昌吉市| 林口县| 乐平市| 沈丘县|