JavaScript Number valueOf() 方法

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 引擎会在后台自动调用该方法,然后取出原始数值进行计算。

上一篇: toLocaleString()

下一篇: JavaScript Object 对象

给站长反馈

绿叶网正在不断完善中,小伙伴们如果发现任何问题,还望多多给站长反馈,谢谢!

邮箱:lvyenet@vip.qq.com

「绿叶网」服务号
绿叶网服务号放大
关注服务号,微信也能看教程。
绿叶网服务号