Javascript JSON.stringify和angular.toJson未按预期工作

Javascript JSON.stringify和angular.toJson未按预期工作,javascript,angularjs,json,Javascript,Angularjs,Json,因此,我必须: var productCopy = { "light": true, "new": true, "available": false }; var model = { "light": true, "new": true, "available": false }; 我需要比较两者,所以我做了如下: // Cr

因此,我必须:

var productCopy = {
    "light": true,
    "new": true,
    "available": false
};

var model = {
    "light": true,
    "new": true,
    "available": false
};
我需要比较两者,所以我做了如下:

// Create our 2 strings
var productCopyString = JSON.stringify(productCopy);
var modelString = JSON.stringify(model);
return modelString !== productCopyString;
var productCopyString = angular.toJson(productCopy);
var modelString = angular.toJson(model);
然后我做了这个:

// Create our 2 strings
var productCopyString = JSON.stringify(productCopy);
var modelString = JSON.stringify(model);
return modelString !== productCopyString;
var productCopyString = angular.toJson(productCopy);
var modelString = angular.toJson(model);
但它不起作用。所以我做了如下的console.log:

console.log('productCopy', productCopyString);
console.log('model', modelString);
console.log('are they different', modelString !== productCopyString)
结果是:

productCopy{light:true,new:true,available:false}

模型{light:true,new:true,available:false}

它们不同吗

这很奇怪,所以我这样做了:

// Create our 2 strings
var productCopyString = JSON.stringify(productCopy);
var modelString = JSON.stringify(model);
return modelString !== productCopyString;
var productCopyString = angular.toJson(productCopy);
var modelString = angular.toJson(model);
我也得到了同样的结果


有人知道为什么吗?

在Javascript中,如果两个字符串具有相同的数据,则两个字符串相等===

例如:“{light:true,new:true,available:false}”=='{light:true,new:true,available:false}”


注意:在Java等其他语言中,两个字符串相等==它们引用的是同一个实例。在这种情况下,两个数据相同的字符串将不会是==。

我不知道您期望的是什么。字符串相等,因此!==操作员给出错误。什么不起作用?我在JSBin中运行了这个,结果与预期的一样。问题是什么,你期望的是什么,两个字符串都是相同的,在比较中对两个字符串都应用了不相等运算符,结果是false,意思是,两个都是相同的,那么奇怪的是什么?它们是不同的false吗?这是一个真实的陈述。是的,我知道我在做一些愚蠢的事情,我盯着代码看了这么久,看不见树木