HLJ 发布于
2025-05-22 15:44:54
0阅读

JavaScript面试知识点总结30题

下一篇文章:

Vue面试题及答案汇总

以下是30个JavaScript面试常考知识点总结,涵盖核心概念和常见问题:


一、基础概念

  1. 变量类型与类型检测

    • 原始类型:undefinedbooleannumberstringsymbolbigintnull
    • 引用类型:ObjectArrayFunction
    • typeofinstanceof 的区别,Object.prototype.toString.call()
  2. 作用域与闭包

    • 全局/函数/块级作用域,变量提升(var)与暂时性死区(let/const)
    • 闭包定义:函数内部访问外部作用域的变量,应用场景(模块化、防抖节流)。
  3. 原型与继承

    • 原型链:obj.__proto__prototypenew 的实现步骤。
    • 继承方式:原型链继承、组合继承、寄生组合继承(最优)。
  4. this 指向

    • 普通函数:由调用方式决定(默认绑定、隐式绑定、显式绑定 call/apply/bindnew 绑定)。
    • 箭头函数:继承外层作用域的 this

二、异步与事件循环

  1. 事件循环(Event Loop)

    • 宏任务(setTimeoutsetInterval)与微任务(Promise.thenMutationObserver)的执行顺序。
  2. Promise

    • 状态(pending/fulfilled/rejected),链式调用,Promise.all/Promise.race/Promise.allSettled
  3. Async/Await

    • 本质是 Generator 的语法糖,async 返回 Promise,await 暂停执行直到异步完成。

三、ES6+ 特性

  1. 箭头函数

    • thisarguments,不能作为构造函数。
  2. 解构赋值

    • 数组/对象解构,默认值设置。
  3. 扩展运算符与剩余参数

    • ... 用于数组/对象展开,函数参数收集(替代 arguments)。
  4. 模块化

    • export/import 与 CommonJS 的 require/module.exports 区别。
  5. Class 与继承

    • class 语法糖,extendssuper 实现继承。
  6. Symbol 与 BigInt

    • Symbol 创建唯一值,BigInt 表示大整数。
  7. 可选链与空值合并

    • ?. 避免访问 null/undefined 属性,?? 替代 || 处理默认值。

四、函数与对象

  1. 高阶函数

    • 接收函数作为参数或返回函数(如 mapfilterdebounce)。
  2. 柯里化(Currying)

    • 将多参数函数转换为单参数链式调用,例如 sum(a)(b)(c)
  3. 深拷贝与浅拷贝

    • JSON.parse(JSON.stringify()) 的局限性,递归实现深拷贝。
  4. 对象属性描述符

    • Object.definePropertyconfigurableenumerablewritablevalue

五、DOM 与浏览器

  1. 事件冒泡与捕获

    • 事件传播三个阶段:捕获、目标、冒泡,e.stopPropagation()
  2. 事件委托(代理)

    • 利用事件冒泡,通过父元素统一处理子元素事件(如动态列表)。
  3. 跨域解决方案

    • CORS、JSONP、Proxy 代理、postMessage

六、性能与安全

  1. 防抖(Debounce)与节流(Throttle)

    • 防抖:连续触发时只执行最后一次(搜索框)。
    • 节流:固定时间间隔执行(滚动事件)。
  2. 内存泄漏

    • 常见原因:未清理的定时器、闭包、全局变量引用。

七、其他核心概念

  1. 严格模式('use strict')

    • 禁止隐式全局变量,函数参数不能重名,this 默认 undefined
  2. Map 与 Set

    • Map 支持任意类型键,Set 自动去重。
  3. Proxy 与 Reflect

    • Proxy 拦截对象操作,Reflect 提供默认行为。
  4. Generator 函数

    • function* 定义,yield 暂停执行,next() 恢复。
  5. 错误处理

    • try/catch 捕获同步错误,Promise.catch 处理异步错误。
  6. Web Workers

    • 多线程运行 JavaScript,与主线程通过 postMessage 通信。
  7. 设计模式

    • 单例模式、观察者模式、工厂模式的应用场景。

高频手写题

  • 实现 Promisecall/apply/bind、防抖/节流、深拷贝、数组扁平化、柯里化等。

掌握这些知识点能覆盖大部分JavaScript面试考点,建议结合代码实践加深理解。

当前文章内容为原创转载请注明出处:http://www.good1230.com/detail/2025-05-22/720.html
最后生成于 2025-06-05 15:00:43
下一篇文章:

Vue面试题及答案汇总

此内容有帮助 ?
0