前端进阶之旅前端进阶之旅
基础篇
进阶篇
高频篇
精选篇
手写篇
面经篇
AI 篇
原理篇
每日一题
小程序题库
知识卡片
  • 场景篇按分类整理的大前端场景考点
  • 历年面经按年份追踪真实考点
  • 算法题库NEW在线编码即时判题
  • 专项自测100 题快速查漏
  • 前端基础
    • HTTP从报文一路讲到 HTTPS
    • 浏览器渲染、事件循环、进程
    • 计算机基础Linux、网络、操作系统
  • 进阶专项
    • 设计模式23 种模式怎么用
    • 前端系统进阶学习大型项目工程化
    • 前端综合文章长期沉淀的实践文
  • 工程与工具
    • Node学习指南从环境搭建到服务端
    • NPM工作流script、依赖与发布
    • Docker容器化部署上手
    • Canvas图形与动画实战
  • 路线与导图
    • 思维导图知识点全景图
    • 学习路线按图索骥不跑偏
  • 动态
    • 公众号动态公众号历史文章
    • 博客动态站长的技术博客
    • 开发者导航常用工具与文档站
  • AI 助手随时提问,即时解析
  • AI 模拟面试模拟真实面试 + 报告
  • AI 知识地图串起全站知识点
  • AI 定制路线按你的简历现排
AI 热点
旧版
基础篇
进阶篇
高频篇
精选篇
手写篇
面经篇
AI 篇
原理篇
每日一题
小程序题库
知识卡片
  • 场景篇按分类整理的大前端场景考点
  • 历年面经按年份追踪真实考点
  • 算法题库NEW在线编码即时判题
  • 专项自测100 题快速查漏
  • 前端基础
    • HTTP从报文一路讲到 HTTPS
    • 浏览器渲染、事件循环、进程
    • 计算机基础Linux、网络、操作系统
  • 进阶专项
    • 设计模式23 种模式怎么用
    • 前端系统进阶学习大型项目工程化
    • 前端综合文章长期沉淀的实践文
  • 工程与工具
    • Node学习指南从环境搭建到服务端
    • NPM工作流script、依赖与发布
    • Docker容器化部署上手
    • Canvas图形与动画实战
  • 路线与导图
    • 思维导图知识点全景图
    • 学习路线按图索骥不跑偏
  • 动态
    • 公众号动态公众号历史文章
    • 博客动态站长的技术博客
    • 开发者导航常用工具与文档站
  • AI 助手随时提问,即时解析
  • AI 模拟面试模拟真实面试 + 报告
  • AI 知识地图串起全站知识点
  • AI 定制路线按你的简历现排
AI 热点
旧版
首页程序员面试题库JavaScript面试题第 6 页
面试知识索引 · 分类、标签与搜索

JavaScript面试题,285 道完整答案

JavaScript面试题第 6 页,显示第 251–285 题,共找到 285 道完整解析,可继续按分类、标签与关键词缩小范围。

285筛选结果
52技术分类
178检索标签
6索引分页
按分类建立知识面,再用标签和搜索定位问题

每页只渲染 50 道题。分类与标签分页可抓取,自由搜索结果不会制造无限 SEO 页面。

快速定位

分类、标签与关键词搜索

清除全部筛选
题库检索
技术分类52 个
全部分类5000JavaScript285AI Agent511浏览器301React281AI 开发262CSS240Node.js217TypeScript206Vue180前端工程化138React Native135
查看全部 52 个分类
操作系统135数据库134Docker95计算机网络94API 设计90Kubernetes90HTML89Redis89全栈开发88分布式系统88系统设计86HTTP85Next.js60Angular58Linux53Nuxt51PostgreSQL46可观测性46设计模式46小程序45身份与权限45无障碍44MongoDB43PWA43Web 安全43Git42前端测试42前端性能41WebAssembly40测试40AI 工程37SvelteKit37Go35前端数据管理30React Router29AI 全栈28Svelte27算法12Java10数据结构5前端手写题3
JavaScript 标签22 个
值与类型50异步编程48数据处理45模块与语言机制40函数与作用域39数组与集合38对象与原型35异步与 Promise34性能优化7并发编程5构建工具5流处理4缓存4表单2事件循环1
查看其余 7 个标签
作用域与函数1容器化1异步与浏览器1手写与交互性能1测试1相等比较1算法1
当前页06 / 6

正在显示第 251–285 题

JavaScript35
第 6 页

本页面试问题

按稳定语义路径排序

  1. 0251
    JavaScript值与类型

    为什么 NaN 不等于自身?怎么可靠地判断一个值是不是 NaN?

    NaN 与自身用 === 比较也为 false,这是 IEEE 754 的相等规则。Number.isNaN 不做类型转换,全局 isNaN 会先转换输入;数组的 indexOf 找不到 NaN,includes 却能找到,因为两种方法使用的相等算法不同。

    核心关键词JavaScript NaN 判断
    #值与类型
  2. 0252
    JavaScript值与类型

    什么操作会得到 -0?它和 0 有哪些行为上的区别?

    IEEE 754 保留了正零和负零的区别。JS 里 -0 === 0 为 true,但 Object.is 能区分,1 除以 -0 得到 -Infinity。搞清负零怎么产生、怎么检测、以及 JSON 序列化会丢失符号。

    核心关键词JavaScript 负零 -0
    #值与类型
  3. 0253
    JavaScript值与类型

    ?? 和 || 给默认值有什么区别?什么时候该用哪个?

    ?? 只在左侧为 null 或 undefined 时启用默认值,|| 遇到零、false 或空字符串也会回退,因此处理合法业务值时结果不同。?? 与 &&、|| 直接混用有语法限制,??= 只在空值时赋值,可选链常与它一起处理缺失字段。

    核心关键词空值合并运算符 逻辑或 区别
    #值与类型
  4. 0254
    JavaScript值与类型

    JavaScript 的 Number 在内存里是怎么存的?符号、指数、尾数各占几位?

    JavaScript 的 Number 采用 IEEE 754 双精度格式,包含符号位、偏移指数和有效数字尾数。指数影响可表示范围,尾数限制精度;隐含的最高有效位解释了安全整数边界,非规格化数则关系到最小正数和下溢。

    核心关键词双精度 浮点数 存储格式 指数 尾数
    #值与类型
  5. 0255
    JavaScript值与类型

    全局 isFinite 和 Number.isFinite 有什么区别?

    全局 isFinite 会先做数值转换,因此字符串 "42"、null 与空字符串都可能得到 true;Number.isFinite 只接受真正的有限 number。表单输入应先明确解析规则,再检查是否有限;BigInt 和无穷大也不能混为一谈。

    核心关键词isFinite Number.isFinite 区别
    #值与类型
  6. 0256
    JavaScript值与类型

    parseInt 有哪些坑?为什么 ['1', '2', '3'].map(parseInt) 结果不对?

    parseInt 会从字符串开头读取可识别的整数部分,碰到不合法字符就停止,一个数字都读不到才是 NaN。radix 指定进制,0x 前缀有特殊处理;把它直接传给 map 或用于极小浮点数时,隐式参数和科学计数法会制造意外结果。

    核心关键词parseInt 字符串解析 陷阱
    #值与类型
  7. 0257
    JavaScript值与类型

    字符串转数字,Number()、parseInt、parseFloat 和一元加号有什么区别?

    Number() 和一元加号要求输入整体符合数字转换规则,parseInt 与 parseFloat 则能在前缀合法时提前停止。空串、带单位文本、进制前缀和科学计数法因此会得到不同结果;处理用户输入时应先决定是否允许尾部杂质。

    核心关键词Number parseInt parseFloat 字符串转数字
    #值与类型
  8. 0258
    JavaScript值与类型

    toFixed 返回什么类型?为什么 1.005.toFixed(2) 是 1.00 而不是 1.01?

    toFixed 返回字符串,并按 Number 实际保存的二进制值舍入;十进制的 1.005 不能精确存储,保留两位可能得到 1.00。数值足够大时还会改用指数记法,金额计算应避免把展示格式化当成精确运算。

    核心关键词toFixed 舍入 精度
    #值与类型
  9. 0259
    JavaScript值与类型

    怎么把十进制数转成二进制、八进制、十六进制字符串?有什么限制?

    Number 的 toString(radix) 可把数值表示为 2 到 36 进制字符串,负数输出负号而非补码。小数转换可能无法有限结束,补零又是字符串格式问题;超过 Number 安全整数范围的输入应先保留精度,再考虑用 BigInt 转换。

    核心关键词Number toString radix 进制转换
    #值与类型
  10. 0260
    JavaScript值与类型

    为什么 0.1 + 0.2 不等于 0.3?浮点数该怎么比较?

    0.1 和 0.2 不能用有限二进制小数精确表示,Number 存储时发生舍入,相加后会看到 0.30000000000000004。用 Number.EPSILON 比较只适合相应数量级的误差,金额运算通常需整数分或十进制定点方案。

    核心关键词JavaScript 浮点数精度 0.1+0.2
    #值与类型
  11. 0261
    JavaScript值与类型

    Number 能表示的最小正数是多少?为什么会有 +0 和 -0?

    Number.MIN_VALUE 是最小正的非零浮点数,约为 5e-324,和最小安全整数毫无关系。更小的正数会下溢;正负零在 === 下相等、在 Object.is 下不同,除法等运算还能保留或暴露负零符号。

    核心关键词JavaScript 最小正数 下溢 负零
    #值与类型
  12. 0262
    JavaScript值与类型

    数字分隔符 _ 能用在哪些字面量里?写在哪些位置会报错?

    数字分隔符允许在字面量的数字之间插入下划线,十进制、其他进制、BigInt 和指数部分都能用,但不能放在开头、结尾或紧挨小数点。它只是源码书写语法,Number("1_000") 不会按分隔符解析,反而得到 NaN。

    核心关键词JavaScript 数字分隔符 下划线
    #值与类型
  13. 0263
    JavaScript值与类型

    怎么用 Object.prototype.toString 做比 typeof 更精确的类型判断?

    typeof 对数组、日期等对象只能给出粗略的 object 结果,Object.prototype.toString.call 可得到 [object Array] 标签。借用基类方法可避开实例自己的 toString;Symbol.toStringTag 却能改写标签,判断数组应使用 Array.isArray。

    核心关键词Object.prototype.toString 类型判断
    #值与类型
  14. 0264
    JavaScript值与类型

    对象转字符串时,先调 valueOf 还是先调 toString?

    对象转原始值时,字符串上下文通常先尝试 toString,数字和默认上下文通常先尝试 valueOf;Symbol.toPrimitive 存在时会优先接管。返回对象而非原始值可能触发回退或异常,Date 的默认转换又与一般对象不同。

    核心关键词对象转字符串 valueOf toString 顺序
    #值与类型
  15. 0265
    JavaScript值与类型

    a = b === c 到底先算哪一步?优先级会引出哪些 bug?

    a = b === c 会先比较 b 与 c,再把布尔结果赋给 a,因为相等比较的优先级高于赋值。连续赋值还涉及结合方向;在 if 条件中少写一个等号、取反位置写错或混入位运算符,都可能让表达式合法却语义错误。

    核心关键词运算符优先级 赋值 相等
    #值与类型
  16. 0266
    JavaScript值与类型

    一元加号 +x 和 Number(x) 有什么区别?

    一元加号和 Number() 对常见字符串、布尔值、null、undefined 与对象使用相同的数值转换规则,但对 BigInt 不同:Number(10n) 可显式转换,+10n 会抛 TypeError。它们与 parseInt 的前缀解析也不同,处理输入要避免静默截断。

    核心关键词一元加号 类型转换 Number()
    #值与类型
  17. 0267
    JavaScript值与类型

    字符串是原始类型,为什么还能调用 toUpperCase 这样的方法?

    读取字符串等原始值的方法时,引擎会临时提供对应包装对象,从原型上找到方法,用完不保留这层包装。给原始值添加自定义属性不会形成持久状态;new String 等显式包装对象又有不同的真值与相等行为,null 和 undefined 更不能这样访问。

    核心关键词原始类型包装对象方法
    #值与类型
  18. 0268
    JavaScript值与类型

    Object.is 和 === 有什么区别?什么时候非用 Object.is 不可?

    Object.is 与 === 的差别集中在 NaN 和正负零;includes、Set、Map 使用的 SameValueZero 则把 NaN 视为相同,也不区分正负零。React 的状态比较采用 Object.is,遇到负零或 NaN 更新时,不能直接拿 === 的结果推断。

    核心关键词Object.is -0 NaN 比较
    #值与类型
  19. 0269
    JavaScript值与类型

    字符串和数字、布尔值用加号拼接时,到底是怎么转换的?

    加号会先把操作数转为原始值,只要其中一个是字符串就拼接,否则再做数值相加。因此 1 + 2 + "3" 与 "1" + 2 + 3 的结果不同;对象、数组及 null 参与时还要看转换顺序,减号却不会执行字符串拼接。

    核心关键词字符串拼接 类型转换 加号运算符
    #值与类型
  20. 0270
    JavaScript值与类型

    字符串里怎么用转义写 Unicode 字符?反斜杠本身又该怎么写?

    JavaScript 字符串用反斜杠表示换行、引号和反斜杠本身;十六进制与 Unicode 转义还能写出指定码点。四位 Unicode 转义放不下部分表情符号,需用花括号码点形式;正则表达式和 Windows 路径经过多层字符串解析时尤其容易多写或漏写反斜杠。

    核心关键词String 转义序列 Unicode \n
    #值与类型
  21. 0271
    JavaScript值与类型

    字符串是原始类型,为什么还能用下标取字符?能用下标改吗?

    字符串下标可以读取 UTF-16 码元,却不能像数组下标那样改写字符;严格模式下给只读索引赋值还会报错。charAt、at 与方括号对越界和负索引的处理不同,表情符号被下标切开时还可能只取到代理项的一半。

    核心关键词字符串原始类型 下标访问字符
    #值与类型
  22. 0272
    JavaScript值与类型

    为什么一个表情符号的 length 是 2,家庭表情甚至是 8?

    字符串 length 统计 UTF-16 码元,常用汉字通常占一个码元,许多表情符号占两个,家庭表情等组合序列还会占更多。展开运算符按码点遍历,Intl.Segmenter 才能更贴近用户看到的字素簇;昵称截断要选对单位。

    核心关键词JavaScript 字符串长度 Unicode 编码
    #值与类型
  23. 0273
    JavaScript值与类型

    两个看起来一模一样的字符串,为什么用 === 比较却不相等?

    预组合的 é 与 e 加组合重音符视觉相同,底层码点不同,直接用 === 比较会失败。normalize 可转换成 NFC、NFD 等形式以便搜索和去重;兼容正规化还可能改变字符含义,用户名校验与文件名处理要谨慎选用。

    核心关键词Unicode 正规化 normalize 字符串相等
    #值与类型
  24. 0274
    JavaScript值与类型

    slice、substring、substr 遇到负数和起止颠倒时有什么区别?

    slice、substring、substr 在普通正数范围下看起来相似,负数和起止颠倒时却明显不同:slice 可从末尾计数,substring 会把负数当零并交换边界,substr 的第二个参数是长度。新代码优先选语义清楚的 slice,避免依赖遗留方法。

    核心关键词String slice substring substr 区别
    #值与类型
  25. 0275
    JavaScript值与类型

    String 的 valueOf 和 toString 有区别吗?为什么对 new String 调用会拿到原始字符串?

    String 包装对象的 valueOf 与 toString 都返回内部原始字符串,但对象转换时先调用谁取决于上下文。模板插值偏向字符串转换,加号通常采用默认转换;重写其中一个方法后,相同对象在两种表达式中可能显示不同结果。

    核心关键词String valueOf toString 区别
    #值与类型
  26. 0276
    JavaScript值与类型

    用 Symbol 当对象的键,和字符串键有什么不同?哪些 API 会忽略它?

    Symbol 属性键不会与同名字符串键冲突,也不会出现在 Object.keys、for...in 或 JSON.stringify 的普通对象属性结果中。Reflect.ownKeys 能读到它,展开运算符与 Object.assign 还会复制可枚举 Symbol 键,所以隐藏不等于私有。

    核心关键词Symbol 属性键 字符串键
    #值与类型
  27. 0277
    JavaScript值与类型

    为什么 Symbol() 每次都不相等,还不能用 new 调用?

    每次调用 Symbol() 都创建新的唯一原始值,描述文字相同也不会相等;Symbol.for 则通过全局注册表复用键。Symbol 不能用 new 创建,隐式转成字符串也会失败;作为对象属性键时它能避免普通字符串命名冲突。

    核心关键词Symbol 原始类型 唯一性
    #值与类型
  28. 0278
    JavaScript值与类型

    模板字符串和加号拼接,类型转换有什么不一样?嵌套时要注意什么?

    模板插值会按字符串上下文转换对象,加号拼接通常先走默认原始值转换;自定义 valueOf 和 toString 后,两种写法可能得到不同文本。Symbol 的隐式转换还有特别限制,嵌套模板与标签模板也不等同于普通字符串拼接。

    核心关键词模板字符串 类型转换 表达式
    #值与类型
  29. 0279
    JavaScript值与类型

    JSON.stringify 遇到 undefined、函数和 Symbol 会怎么处理?

    JSON.stringify 遇到 undefined、函数或 Symbol 时,在对象属性里会省略,在数组位置会变成 null,作为顶层值则返回 undefined。NaN、Date、BigInt 与循环引用又有不同处理结果;replacer 能控制部分字段,但不能直接解决所有不可序列化值。

    核心关键词JSON.stringify 转换 undefined function Symbol
    #值与类型
  30. 0280
    JavaScript值与类型

    Symbol.toPrimitive 是怎么让对象自己决定转成数字还是字符串的?

    对象参与运算时,Symbol.toPrimitive 若存在会优先接收 number、string 或 default 提示,决定对象如何变成原始值。没有该方法时才按顺序尝试 valueOf 和 toString;Date 在默认提示下偏向字符串,因此日期对象与数字相加可能得到拼接结果。

    核心关键词Symbol.toPrimitive 类型转换 hint
    #值与类型
  31. 0281
    JavaScript值与类型

    为什么字符串方法都返回新字符串,数组方法却会直接改原数组?

    字符串是不可变的原始值,截取、替换等方法返回新字符串;数组是对象,push、sort、splice 等方法会直接改动自身。两者在传参和 React 状态更新中容易被混淆,数组若需保留原值可用 toSorted、toSpliced 等非修改方法。

    核心关键词字符串不可变性 数组可变性
    #值与类型
  32. 0282
    JavaScript值与类型

    typeof 什么时候会返回 'object'?typeof null 为什么也是 'object'?

    typeof 对数组、Date、Map、正则、包装对象和 null 都返回 object,无法单凭结果细分对象种类。判断空值要直接与 null 比较,判断数组用 Array.isArray;未声明变量与暂时性死区中的变量对 typeof 也并非同样安全。

    核心关键词typeof 运算符结果
    #值与类型
  33. 0283
    JavaScript值与类型

    undefined 和 null 到底有什么区别,什么时候该用哪个?

    undefined 常代表尚未赋值或缺少参数,null 通常是代码主动放入的空值。两者在 typeof、宽松相等、数字转换、默认参数和 JSON 序列化中有不同结果;接口字段需要表达“缺失”还是“明确清空”时,这个区别尤其重要。

    核心关键词JavaScript undefined null 区别
    #值与类型
  34. 0284
    JavaScript值与类型

    Number.prototype.valueOf 返回什么?自定义对象的 valueOf 会怎样影响类型转换?

    Number 包装对象的 valueOf 返回内部保存的数字;自定义对象参与加减法或比较时,valueOf 也可能成为取得原始值的第一步。若 Symbol.toPrimitive 存在,它会优先接管转换;返回的仍是对象时还可能继续尝试 toString 或抛错。

    核心关键词Number valueOf Number 强制转换
    #值与类型
  35. 0285
    JavaScript值与类型

    void 运算符有什么用?为什么老代码里到处是 void 0?

    void 会先求值右侧表达式,再把整个表达式的结果固定为 undefined。void 0 曾被用来取得可靠的 undefined,如今也常用来显式丢弃回调返回值或标记不等待的 Promise;它不会吞掉 Promise 的未处理拒绝。

    核心关键词void 运算符 undefined
    #值与类型#异步编程
上一页
1…456
下一页
前端进阶之旅本地 Markdown 维护 · 服务端分页 · 完整内容对用户与搜索引擎一致