gpt4 book ai didi

javascript - 对象和原始类型相等

转载 作者:行者123 更新时间:2023-11-30 12:49:23 25 4
gpt4 key购买 nike

我知道相同的对象是不相等的,即:

var obj = { name: "Value" };
var obj2 = { name: "Value" };

console.log("obj equals obj2: " + (obj === obj2)); //evaluates to false

然而原始类型是:

var str = "string1";
var str2 = "string1";

console.log("str equals str2: " + (str === str2)); //evaluates to true

我的问题是为什么。为什么对象和基元的处理方式不同?如果一个对象只不过是一个空容器,只有您指定要放入容器中的属性,那么为什么容器的相同属性不会被评估为相同?我在 SO 和其他地方四处寻找这个答案,但没有找到答案。

在 DOM 中,JS 对象是否被视为与原始类型不同的东西?

谢谢

最佳答案

这似乎真的是关于===的问题所以让我们看看the Strict Equality Comparison Algorithm ,其中第 7 点表示

Return true if x and y refer to the same object. Otherwise, return false.

那么“同一个对象”是什么意思呢?这意味着它们不仅看起来像彼此,而且在内存中也位于同一位置。这意味着只有当 Object===Object 时,它们是同一事物。

var a = {},
b = {}, // identical to `a`
c = a; // same as `a`
a === b; // false
a === c; // true
b === c; // false

关于javascript - 对象和原始类型相等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21488340/

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