MST

星途 面试题库

面试题:JavaScript 复杂数据类型转换场景分析

假设有一个对象`const obj = { valueOf: function() { return 1; }, toString: function() { return '2'; } }; console.log(obj + 3);` 输出什么?详细说明数据类型转换的过程。
21.8万 热度难度
编程语言JavaScript

知识考点

AI 面试

面试题答案

一键面试
  1. 输出结果
    • 输出 4
  2. 数据类型转换过程
    • 当执行 obj + 3 时,JavaScript 引擎会尝试将 obj 转换为原始类型,以便进行加法运算。
    • 首先会调用 obj.valueOf() 方法,这里 obj.valueOf() 返回 1,是一个原始类型(数字)。
    • 由于 valueOf() 已经返回了原始类型,就不会再调用 toString() 方法。
    • 然后进行加法运算 1 + 3,结果为 4,所以 console.log(obj + 3) 输出 4