在任何情况下,`x.valueOf()=== x`都可能返回`false`?

问题描述 投票:0回答:1

我正在尝试了解valueOf()方法。

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/valueOf

是否存在任何类型的变量都可以返回false进行以下检查的情况?

x.valueOf() === x

const obj = {};
const str = "abc";
const strNum = "123";
const number = 123;
const arrStr = ["a","b","c"];
const arrNum = [1,2,3];

console.log(obj.valueOf() === obj);
console.log(str.valueOf() === str);
console.log(strNum.valueOf() === strNum);
console.log(number.valueOf() === number);
console.log(arrStr.valueOf() === arrStr);
console.log(arrNum.valueOf() === arrNum);
javascript primitive primitive-types value-of
1个回答
3
投票
具有自定义valueOf方法的变量可能返回无法通过测试的值:
© www.soinside.com 2019 - 2024. All rights reserved.