JavaScript面试题
共 26 道题,按题目查阅参考答案、代码示例与官方资料。
- 什么是闭包?它有哪些实际应用?
理解词法作用域,以及函数如何保留对外部变量的访问。
- 事件循环中,任务和微任务按什么顺序执行?
用一段代码区分同步执行、Promise 回调与 setTimeout。
- 普通函数和箭头函数的 this 有什么区别?
从调用方式与词法绑定解释 this,而不是只记规则。
- Promise.all、allSettled、race 和 any 如何选择?
根据成功条件和失败处理方式,选择合适的并发组合。
- JavaScript 的值类型与相等比较应该怎样理解?
- 隐式类型转换有哪些容易踩坑的规则?
- var、let、const 和暂时性死区有什么关系?
- 原型链、class 和继承之间是什么关系?
- 属性描述符、Object.freeze 和只读有什么区别?
- 浅拷贝、深拷贝和 structuredClone 如何选择?
- Map、Set、WeakMap 与普通对象各有什么用途?
- 数组常用方法怎样选择,哪些会修改原数组?
- async/await 如何处理异常和并发?
- ES Modules 和 CommonJS 有哪些关键区别?
- 迭代器、可迭代对象和 Generator 有什么关系?
- Proxy 与 Reflect 能实现什么,存在哪些限制?
- 垃圾回收为什么无法自动解决所有内存泄漏?
- 浮点精度、安全整数和 BigInt 有哪些边界?
- 正则表达式在前端使用时需要注意什么?
- 同步错误、Promise 拒绝和全局异常应该怎样处理?
- ArrayBuffer、TypedArray 和普通数组有什么区别?
- DataView 怎样读取指定字节序的二进制数据?
- using 和 await using 解决什么资源清理问题?
- Temporal 为什么把 Instant、PlainDate 和 ZonedDateTime 分开?
- 可选链和空值合并为什么不能简单替换为 && 和 ||?
- Object.keys、for...in 和 Reflect.ownKeys 会返回哪些属性?