gpt4 book ai didi

javascript - 理解 JavaScript 对象(值)

转载 作者:可可西里 更新时间:2023-11-01 02:23:09 25 4
gpt4 key购买 nike

我理解以下代码将一个数字包装到一个对象中:

var x = Object(5);

因此,我期望并理解以下内容:

alert(x == 5); //true
alert(x === 5); //false

但是,我也理解对象是键/值对的列表。所以我希望以下内容有所不同:

alert(JSON.stringify(5)); //5
alert(JSON.stringify(x)); //5

x 的结构是什么样的?为什么它看起来不是键/值对格式?

最佳答案

Object constructor为给定值创建一个对象包装器,其类型对应于该值。

所以你得到一个Number object将数字传递给 Object

时使用原始值 5
var x = Object(5);

和做的一模一样

var x = new Number(5);

打电话时 valueOf()在两者上,您再次获得原始值 5,这就是为什么将其字符串化与将数字 5 字符串化相同,对象在字符串化之前转换为其原始值

JSON.stringify 的规范说

Boolean, Number, and String objects are converted to the corresponding primitive values during stringification, in accord with the traditional conversion semantics.

关于javascript - 理解 JavaScript 对象(值),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34581270/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com