国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

50 道高頻 JavaScript 面試題,從基礎到進階 (附答案)

開發 前端
今天我為大家整理了 50 道高頻 JavaScript 面試題,涵蓋基礎語法、ES6 特性、異步編程、性能優化、瀏覽器機制等核心知識點,并附上簡明答案,希望能幫助你快速梳理思路,查漏補缺。

在前端面試中,JavaScript 一直是重中之重。它不僅是一門腳本語言,更是現代 Web 開發的核心技術。無論是頁面交互、異步處理,還是框架與庫的運行機制,幾乎都離不開對 JavaScript 的深刻理解。

許多開發者在面試前,常常困惑于:“面試官會問哪些題?”、“哪些知識點最容易被忽略?”、“怎么才能答得有條理又有深度?”。

今天我為大家整理了 50 道高頻 JavaScript 面試題,涵蓋基礎語法、ES6 特性、異步編程、性能優化、瀏覽器機制等核心知識點,并附上簡明答案,希望能幫助你快速梳理思路,查漏補缺。

無論你是初入職場的新人,還是準備跳槽的前端工程師,都能在這里找到有價值的內容。

1. JavaScript 有哪些數據類型?

原始類型:string, number, boolean, null, undefined, symbol, bigint引用類型:object, array, function, date, regexp

2. null 和 undefined 的區別?

  • undefined 表示變量聲明了但未賦值。
  • null 表示“空對象”,是人為賦的空值。

3. == 和 === 的區別?

  • == 會進行類型轉換后再比較。
  • === 嚴格比較,不做類型轉換。

4. typeof null 的結果是什么?為什么?

結果是 object。這是 JavaScript 歷史遺留的 bug。

5. isNaN 和 Number.isNaN 的區別?

  • isNaN("abc") // true,因為會先轉型。
  • Number.isNaN("abc") // false,不會強制轉型。

6. let、const 和 var 的區別?

  • var 有變量提升、函數作用域。
  • let 無提升、塊級作用域。
  • const 聲明常量,不能修改引用指向。

7. 什么是暫時性死區(TDZ)?

使用 let/const 聲明的變量,在初始化前不能訪問,否則會報錯。

8. 什么是事件冒泡和捕獲?

  • 捕獲:從 window → document → body → … → target。
  • 冒泡:從 target → … → body → document → window。默認事件執行冒泡階段。

9. 什么是事件委托?

利用冒泡機制,把子元素的事件綁定到父元素上,提高性能。

10. 什么是閉包?

閉包是函數和其詞法作用域的組合,常用于 數據隱藏、模塊化、回調函數。

11. 什么是原型和原型鏈?

  • 每個對象都有 __proto__,指向其構造函數的 prototype。
  • 原型鏈是對象查找屬性的機制,最終指向 Object.prototype。

12. new 操作符的原理?

  • 創建一個空對象。
  • 綁定原型。
  • 執行構造函數。
  • 返回對象。

13. call、apply 和 bind 的區別?

  • call:立即執行,參數逐個傳入。
  • apply:立即執行,參數以數組傳入。
  • bind:返回新函數,不立即執行。

14. 什么是深拷貝與淺拷貝?

  • 淺拷貝:只拷貝第一層(Object.assign、展開運算符)。
  • 深拷貝:遞歸拷貝所有層級(structuredClone、JSON.parse(JSON.stringify(obj)))。

15. 什么是節流和防抖?

  • 防抖(debounce):事件觸發后,延遲執行,避免多次觸發。
  • 節流(throttle):限制事件在一定時間內只觸發一次。

16. 什么是 Promise?

Promise是異步編程的一種解決方案,三種狀態:pending → fulfilled / rejected

17. async/await 的原理?

async/await 是 Promise 的語法糖,await 會阻塞異步代碼的執行,直到 Promise 解決。

18. JavaScript 的事件循環機制?

  • 宏任務:script、setTimeout、setInterval、I/O
  • 微任務:Promise.then、MutationObserver、queueMicrotask執行順序:宏任務 → 微任務 → 渲染 → 宏任務 …

19. 什么是柯里化(currying)?

把一個多參函數轉換成一系列單參函數:

function add(a) {
  return (b) => a + b;
}
add(2)(3); // 5

20. 什么是函數式編程?

強調函數的純粹性(無副作用)、組合、不可變性。

21. 箭頭函數和普通函數的區別?

  • 沒有 this,從作用域繼承。
  • 不能作為構造函數。
  • 沒有 arguments。

22. 什么是解構賦值?

const [a, b] = [1, 2];  
const {x, y} = {x:10, y:20};

23. 什么是展開運算符?

const arr = [1,2];  
const newArr = [...arr, 3];

24. Set 和 Map 的區別?

  • Set:值唯一。
  • Map:鍵值對,鍵可以是任意類型。

25. WeakMap 和 Map 的區別?

  • WeakMap 鍵必須是對象。
  • 鍵是弱引用,垃圾回收不影響。

26. 什么是 Proxy?

Proxy 可以攔截對象的操作,比如 get、set,常用于數據綁定。

27. 什么是 Symbol?

唯一的標識符,避免屬性名沖突。

28. 什么是 BigInt?

用于表示超過 Number.MAX_SAFE_INTEGER 的整數。

29. 什么是模塊化(ES Modules)?

  • export 導出,import 導入。
  • 靜態加載,編譯時確定依賴。

30. import 和 require 的區別?

  • require 是 CommonJS,同步執行。
  • import 是 ES6 模塊,靜態加載。

31. 如何實現數組去重?

[...new Set([1,1,2,3])]

32. 如何實現深拷貝?

JSON.parse(JSON.stringify(obj));

33. 如何判斷對象是否為空?

Object.keys(obj).length === 0;

34.手寫防抖函數?

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

35. 手寫節流函數?

function throttle(fn, delay){
  let last=0;
  return (...args)=>{
    let now=Date.now();
    if(now-last>delay){
      fn(...args);
      last=now;
    }
  }
}

36. 如何實現一個深比較?

遞歸比較對象的每個屬性。

37. 如何實現數組扁平化?

arr.flat(Infinity);

38. 如何實現數組亂序?

arr.sort(()=>Math.random()-0.5);

39. 如何實現 sleep?

const sleep = ms => new Promise(r=>setTimeout(r, ms));

40. 如何實現千分位格式化?

"1234567".replace(/\B(?=(\d{3})+(?!\d))/g, ",");

41. JS 為什么是單線程的?

因為瀏覽器只有一個 UI 線程,避免多線程同時修改 DOM 造成混亂。

42. 什么是垃圾回收機制?

JS 采用 標記清除(Mark-Sweep) 算法,無法被引用的對象會被回收。

43. 什么是內存泄漏?

不再使用的對象仍然被引用,無法回收,比如:全局變量、閉包、未清理的定時器。

44. 解釋下 JSONP?

利用 <script> 標簽無跨域限制,請求數據并執行回調函數。

45. 什么是 CORS?

跨域資源共享,服務端通過響應頭 Access-Control-Allow-Origin 允許跨域請求。

46. 什么是同源策略?

協議、域名、端口都相同才算同源,否則限制跨域訪問。

47. 解釋下事件循環中的微任務和宏任務?

  • 微任務:Promise.then
  • 宏任務:setTimeout
  • 執行順序:一個宏任務 → 所有微任務 → 渲染。

48. async/await 如何捕獲異常?

用 try/catch 包裹 await。

49. JS 中的 this 綁定規則?

  1. 默認綁定:全局 this → window
  2. 隱式綁定:誰調用指向誰。
  3. 顯式綁定:call/apply/bind。
  4. new 綁定:指向實例對象。

50. 什么是事件循環中的渲染機制?

瀏覽器會在 宏任務 → 微任務 → requestAnimationFrame → 渲染 的流程中刷新頁面。

寫在最后

JavaScript 的知識體系龐大,面試中??嫉牟粌H僅是語法本身,更是你對底層原理應用場景的理解。

掌握這些高頻考點,能讓你在面試中更自信,但真正的核心競爭力,還在于把知識融會貫通,應用到實際項目中。

希望今天內容能幫助到你,最后感謝你的閱讀,祝編程愉快!

責任編輯:龐桂玉 來源: web前端開發
相關推薦

2018-02-25 16:35:32

前端CSS面試題

2024-02-26 15:35:44

2024-01-01 15:30:59

JavaScriptWeb 應用程序開發

2024-06-04 14:52:28

2021-03-19 11:08:27

開發技能代碼

2025-02-11 07:40:27

2020-08-31 12:20:07

Python面試題代碼

2021-05-08 14:20:27

Redis面試數據庫

2019-05-15 16:45:13

SpringBoot面試題Java

2021-02-23 12:43:39

Redis面試題緩存

2023-11-09 16:13:00

TypeScript前端

2023-09-26 22:19:36

Java限流器

2023-07-14 08:12:21

計時器unsafecontext

2025-01-09 12:00:00

JavaScript前端數組

2023-11-27 16:11:14

Web 開發HTML

2010-11-26 10:53:29

戴爾

2019-12-26 09:52:33

Redis集群線程

2021-01-22 11:58:30

MySQL數據庫開發

2017-09-25 10:00:18

Hadoop面試題答案解析

2024-04-28 08:23:18

點贊
收藏

51CTO技術棧公眾號

国产精品777777在线播放| 亚洲午夜激情| 日本精品一区二区| 99国内精品久久久久| 欧美影院精品一区| 黄色a级片免费| 久久久亚洲一区| 欧美精品中文字幕一区| 一级片免费视频| 日韩欧美一区二区三区在线视频| 国产风韵犹存在线视精品| 中文一区二区视频| 国内精品卡一卡二卡三新区| 久久国产电影| 亚洲人成自拍网站| 欧美性xxxxxxxxx| 亚洲一区影音先锋| 欧美二区三区| 亚洲成人一品| 亚洲第一天堂av| 老太脱裤让老头玩ⅹxxxx| 综合色就爱涩涩涩综合婷婷| 懂色aⅴ精品一区二区三区蜜月| 欧美日韩精品免费在线观看视频| av日韩一区| 在线观看国产一区二区| 欧美重口另类videos人妖| 欧美成人一区二区在线| 熟女性饥渴一区二区三区| 清纯唯美亚洲综合一区| 丝袜一区二区三区| 国产成人高清视频| 亚洲欧美日韩在线一区| 免费黄网站在线播放| 亚洲国产欧美另类丝袜| 天堂中文字幕一二区| 欧美综合久久| 2021国产在线| 亚洲成人av在线播放| 蜜桃免费一区二区三区| 韩国精品一区二区三区| 精品成人在线观看| 亚洲最大中文字幕| 欧美精品中文| 日韩av在线电影网| 色是在线视频| 色婷婷av一区二区三区在线观看| 99riav视频| 亚洲午夜久久久久久尤物| 成人全视频高清免费观看| 自拍偷拍欧美日韩| 亚洲黄色在线看| 成人动漫一区| 久久综合久久久久88| 欧美少妇在线观看| 日韩一区二区在线看| 麻豆视频在线观看免费网站黄| 亚洲精品按摩视频| 日韩激情在线| 日韩欧美一级在线| 极品少妇一区二区三区| 97婷婷涩涩精品一区| 色资源在线观看| 成人免费视频网站在线观看| 中文字幕久久综合| 国内久久精品| 国产在线欧美日韩| 国产伦精品一区二区三区在线播放| 亚洲日韩欧美视频一区| 日本成a人片在线观看| 日韩欧美成人精品| 可以在线观看的av| 自拍偷拍国产精品| 韩国中文字幕av| 国产欧美日本一区二区三区| 又黄又免费的网站| 久久久99精品久久| 调教在线观看| 精品久久久久久久久久久久久久久久久| 久草在线视频网站| 国产精品免费一区| 国产伊人精品| 成人性生活视频免费看| 一区二区三区丝袜| 黄视频在线免费看| 国产精品久久久久久久电影| 美女精品视频在线| 亚洲欧美国产视频| 欧美xxxx性xxxxx高清| 久久在线观看免费| 欧美r级电影在线观看| 久久久噜噜噜久久久| 国产欧美日韩精品一区| 日韩母乳在线| 日韩欧美二区三区| 少妇视频在线观看| 91国产在线精品| 亚洲东热激情| 国产精品无码专区av在线播放| 亚洲综合成人在线| 国产精品一品| 欧美一区二三区| 免费在线观看日韩欧美| 韩国视频一区二区三区| 日本韩国欧美一区二区三区| 国产精品伦一区二区| 91夜夜揉人人捏人人添红杏| 国产一区二区三区免费在线观看| av免费看大片| 亚洲欧美日韩中文在线| 国产精品久久久久久麻豆一区软件| 香蕉视频在线网址| 欧美午夜精品久久久久久浪潮| 在线观看精品| 国产伦视频一区二区三区| 久久免费偷拍视频| 日本性爱视频在线观看| 欧美性受xxx| 国产精品一二三在| avtt亚洲| 国内成人精品一区| 麻豆精品精品国产自在97香蕉| 国产911网站| 中文字幕亚洲精品| 免费日韩av| 亚州av电影免费在线观看 | 欧美电影免费观看| 青青久久av北条麻妃黑人| 狠狠色伊人亚洲综合成人| 精华区一区二区三区| 欧美激情中文字幕乱码免费| 美女网站在线免费欧美精品| 精品三级久久久久久久电影聊斋| 国产+人+亚洲| 国产成人在线网站| 欧美日韩xx| 久久99精品视频| 国产精品嫩草视频| 国产欧美视频一区二区| 麻豆蜜桃在线观看| 国产精品国产一区二区| 亚洲欧美一区二区三区国产精品| 午夜免费电影一区在线观看| 欧美精品一区在线| 久久的精品视频| 欧美日韩一卡二卡| 久久精品亚洲欧美日韩精品中文字幕| 91丨九色丨国产在线| 1000精品久久久久久久久| 免费观看黄色网| 黄网视频在线观看| 一级做a爰片久久| 69**夜色精品国产69乱| 国产精品久久久久久久av电影| 国产乱人伦偷精品视频不卡| 免费黄色电影在线观看| 91精品久久久久久久久青青| 亚洲精品视频在线看| jizz18欧美18| 欧美日韩亚洲一二三| 中文字幕欧美精品在线| 国产sm精品调教视频网站| 亚洲一区资源| 91免费版看片| 中文字幕精品一区久久久久| 成人av资源在线| 少妇高潮一区二区三区99| 91专区在线观看| 久久久999精品| 久久综合中文字幕| 中文字幕久久精品一区二区 | 久久精品网站视频| xxxx性欧美| 国产亚洲自拍一区| 欧美一区自拍| 色播在线视频| 春色成人在线视频| 日韩欧美视频在线| 国产成人亚洲综合色影视| 欧美久久久网站| 成人黄色在线看| 日韩伦理电影网站| 国产日韩亚洲欧美在线| 色综合久久悠悠| 欧美日韩在线另类| 免费成人美女在线观看.| 青青草国产一区二区三区| 1024亚洲| 欧美日韩精品免费看| 综合欧美国产视频二区| 国产精品不卡在线| 欧美日一区二区三区在线观看国产免| 成人在线免费看黄| 男的插女的下面视频| rebdb初裸写真在线观看| 亚洲伦伦在线| 亚洲一区免费观看| 欧美激情国产精品| 亚洲成av人片在线观看| 久久福利精品|