微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – TypeScript和ExactEqual

如果两个对象相等,如何以最简单的方式检查?我注意到没有方法ExactEqual() – 就像,所以我想知道我是否应该手动完成.

谢谢你的帮助!

解决方法

没有这样的方法.看一下这个讨论过的 jqfaq.com链接并给出最好的检查方法.这适用于打字稿和javascript.希望,那会对你有所帮助!

引用该答案中最重要的部分:

//“===” means that they are identical.
//“==” means that they are equal in value.
//( == )
//Each JavaScript value is of a specific “type” (Numbers,strings,Booleans,functions,and objects). So if you try to compare a string with a number,the browser will try to convert the string into a number before doing the comparison.
//So the following will return true.
55 == “55″ //true
0 == false //true
1 == true //true
//(===)
//The === operator will not do the conversion,if two values are not the same type it will return false. In other words,this returns true only if the operands are strictly equal in value or if they are identical objects.
55 === “55″ //false
0 === false //false
1 === true //false
var a = [1,2,3];
var b = [1,3];
var c = a;
var is_ab_eql = (a === b); // false (Here a and b are the same type,and also have the same value)
var is_ac_eql = (a === c); // true.
//Value types (numbers):
//a === b returns true if a and b have the same value and are of the same type.
//Reference types:
//a === b returns true if a and b reference the exact same object.
//Strings:
//a === b returns true if a and b are both strings and contain the exact same characters.
var a = “ab” + “c”;
var b = “abc”;
a === b //true
a == b //true
//in thiss case the above condition will fail
var a = new String(“abc”);
var b = “abc”;
a === b //false
a == b// true
//… since a and b are not a same type.
typeof “abc”; // ‘string’
typeof new String(“abc”)); // ‘object

原文地址:https://www.jb51.cc/js/151713.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐