Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/411.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 什么';角相等和等相等之间的区别是什么?_Javascript_Angularjs_Performance_Underscore.js - Fatal编程技术网

Javascript 什么';角相等和等相等之间的区别是什么?

Javascript 什么';角相等和等相等之间的区别是什么?,javascript,angularjs,performance,underscore.js,Javascript,Angularjs,Performance,Underscore.js,我的意思是在表现上有什么不同吗?哪一个能够进行最好的深度比较?有时angular的equals函数不能找到所有的差异 我还注意到,此函数的角度版本没有检查“$$hashKey”键。角度。等于:这是角度等于比较 _.isEqual:这是下划线相等功能。在使用此功能之前,需要导入下划线js。通过比较值本身和所有内部属性,它们的作用基本相同。性能也接近相同,至少10000个元素在100-200毫秒内会有差异。我已经创建了小型测试套件,警告:当您运行代码段时,浏览器页面将冻结几秒钟。我不完全确定这是衡量

我的意思是在表现上有什么不同吗?哪一个能够进行最好的深度比较?有时angular的equals函数不能找到所有的差异


我还注意到,此函数的角度版本没有检查“$$hashKey”键。

角度。等于:这是角度等于比较


_.isEqual:这是下划线相等功能。在使用此功能之前,需要导入下划线js。

通过比较值本身和所有内部属性,它们的作用基本相同。性能也接近相同,至少10000个元素在100-200毫秒内会有差异。我已经创建了小型测试套件,警告:当您运行代码段时,浏览器页面将冻结几秒钟。我不完全确定这是衡量绩效的正确方法,所以请随意提出更好的方法

angular
.模块(“比较”,[])
.controller(“比较控制”,函数($scope){
var测试用例=10000;
控制台。时间(“下划线”);
对于(var i=0;i


如果出现$$hashkey,会发生什么?哦,我没有注意到你上次的更新。在这种情况下,正确的方法是使用
angular.equals
,因为
下划线.isEqual
比较将失败
$$hashkey
。或者,您可以使用
angular.toJson
函数删除内部元素,例如更新问题之前被否决的
$$hashkey
,发生这种情况可能是因为人们阅读你的问题,如@Ashokredy的答案所示,isEqual vs angular.equals
,但也有一个关于性能的问题。尽量先指出最重要的事情,以防止选票被否决。@konstantin azizov,非常感谢你的回答。对于使用https访问stackoverflow的用户,您的代码段需要使用下划线https://underscorejs.org 代替http或加载下划线将被阻止。@JonLee White,感谢您指出这个问题,不幸的是,官方网站不使用安全协议,所以我使用了CloudFlare CDN。