JavaScript valueOf() 语法
valueOf() 是 JavaScript Number 对象的一个方法,它用于返回数字的原始数值。
在 JavaScript 中,原始数值(如 123)和 Number 对象(如 new Number(123))是不同的。valueOf() 的主要作用就是从 Number 对象中提取其包装的原始数值。
语法:
num.valueOf()说明:
valueOf() 方法不接收任何参数。
实际上,String、Array、Number 等对象都有 valueOf() 方法,它们都是继承自 Object.prototype.valueOf(),小伙伴们可以对比理解一下:
JavaScript valueOf() 摘要
| 属于 | JavaScript Number 对象 |
|---|---|
| 使用频率 | 极低 |
| 官方文档 | 查看 |
| MDN | 查看 |
JavaScript valueOf() 示例
接下来,我们通过一个简单的示例来讲解 JavaScript valueOf() 方法是如何使用的。
示例 1:valueOf() 基本用法
const num = new Number(123); // 创建一个 Number 对象
const result = num.valueOf(); // 获取原始数值
console.log(num);
console.log(typeof(num));
console.log(result);
console.log(typeof(result));
console.log(result === num); // false,因为类型不同运行结果如下。
[Number: 123]
object
123
number
false分析:
尽管 result 和 num 的值看起来相同,但它们的类型是不同的(一个是 number 类型,另一个是 object 类型),因此使用严格相等 (===) 比较时会返回 false。
示例 2:对原始数字调用 valueOf()
const num = 666;
const result = num.valueOf();
console.log(typeof(result));
console.log(num === result);运行结果如下。
number
true分析:
对原始数字调用 valueOf(),它也只是返回原始数字本身,并没有实际的 “解包” 行为,因为没有包装对象可以解包。
示例 3:valueOf() 的隐式调用
const numObj = new Number(10);
const sum = numObj + 5;
console.log(sum);
console.log(typeof sum);运行结果如下。
15
number分析:
在实际开发中,我们几乎不需要手动调用 valueOf()。因为当我们将 Number 对象参与数学运算(如 +、-、*)时,JavaScript 引擎会在后台自动调用该方法,然后取出原始数值进行计算。
