MST
星途 面试题库

面试题:JavaScript中对象与原始值比较的基础规则

在JavaScript中,当一个对象与一个原始值进行比较时,会遵循怎样的基本类型转换规则?请举例说明对象与数字、字符串比较时的转换过程及结果。
17.3万 热度难度
编程语言JavaScript

知识考点

AI 面试

面试题答案

一键面试
  1. 对象与数字比较
    • 基本类型转换规则:首先调用对象的 valueOf 方法,如果返回的不是原始值,则调用 toString 方法。然后将返回的原始值转换为数字类型进行比较。
    • 示例:
const obj = {
    valueOf: function() {
        return 5;
    }
};
console.log(obj == 5); // true,因为obj通过valueOf方法返回5,直接比较相等
const obj2 = {
    toString: function() {
        return '10';
    }
};
console.log(obj2 == 10); // true,obj2调用toString方法返回'10',转换为数字10后比较相等
  1. 对象与字符串比较
    • 基本类型转换规则:调用对象的 toString 方法,将返回值与字符串进行比较。
    • 示例:
const obj3 = {
    toString: function() {
        return 'hello';
    }
};
console.log(obj3 == 'hello'); // true,obj3调用toString方法返回'hello',直接比较相等