为什么Object.is()在比较2时返回false;确切的;JavaScript对象值?
is()方法确定两个值是否相同 价值观 返回值:一个布尔值,指示两个 参数值相同 我可以使用以下简单类型测试Object.is():为什么Object.is()在比较2时返回false;确切的;JavaScript对象值?,javascript,Javascript,is()方法确定两个值是否相同 价值观 返回值:一个布尔值,指示两个 参数值相同 我可以使用以下简单类型测试Object.is(): Object.is('hello', 'hello'); // true Object.is(1, 1); // true Object.is(null, null); // true 我在MDN上也看到,我可以将其与“窗口”对象一起使用,如下所示: Object.is(window, window); // true 当我尝试比较两个简单的“精确”值时,它似
Object.is('hello', 'hello'); // true
Object.is(1, 1); // true
Object.is(null, null); // true
我在MDN上也看到,我可以将其与“窗口”对象一起使用,如下所示:
Object.is(window, window); // true
当我尝试比较两个简单的“精确”值时,它似乎不起作用(或者可能我用错了方法)
具有以下两个简单对象:
var o1 = {a: "a"};
var o2 = {a: "a"};
所有这些比较结果都是假的
Object.is(o1, o2); // false
Object.is(o1, {a: "a"}); // false
Object.is({a: "a"}, {a: "a"}); // false
你能解释一下为什么结果是假的,或者我是如何以错误的方式使用
Object.is()
的吗?这是因为它们不是相同的引用
注意:
var o1 = {a: "a"};
var o2 = o2;
Object.is(o1, o2);
结果为
true
这是因为它们不是相同的参考
注意:
var o1 = {a: "a"};
var o2 = o2;
Object.is(o1, o2);
结果是
true
原因是当我们有一个对象时,我们存储的是引用,而不是值本身。如果将window
与window
进行比较,则它们指向相同的对象引用
你可以用
比较对象值。原因是当我们有一个对象时,我们存储的是引用,而不是值本身。如果将
window
与window
进行比较,则它们指向相同的对象引用
你可以用
比较对象值。两个不同的对象永远不会“完全相同”。对象相等性基于标识,而不是内容。如果您的应用程序中有一些关于表示概念上相同信息的对象的语义,那么您可以编写自己的比较代码来进行确定
在代码中,每个
{}
对象初始值设定项都会创建一个不同的对象。两个不同的对象永远不会“完全相同”。对象相等性基于标识,而不是内容。如果您的应用程序中有一些关于表示概念上相同信息的对象的语义,那么您可以编写自己的比较代码来进行确定
在代码中,每个
{}
对象初始值设定项都会创建一个不同的对象。因为它们不是同一个对象<代码>var o1={a:“a”};var o2=o1;对象是(o1,o2)代码>在上查看此表,因为它们不是同一对象<代码>var o1={a:“a”};var o2=o1;对象是(o1,o2)代码>请参阅上的此表