您的位置:  主页 > 新闻百态 > 正文新闻百态

js ==和===有什么区别?

 
展开全部
“==”与“===”不同。一种是确定值是否相等,另一种是确定值和类型是否完全相同。
以下规则用于确定运算符比较中的两个值===是否相同。如果这两个值的类型不同,则它们是不同的。
如果两个值是数字且值相等,则它们相等,除非一个或两个都是NaN(在这种情况下,它们不相等)。
为了检测NaN值是否为NaN,NaN值不能与任何其他值(附加类型)相同。您可以使用全局函数isNaN()。
如果两个值都是字符串,并且字符串中相同位置的字符相同,则它们是相同的。
如果链长或含量不同,则它们不相等。
如果两个值都是真正的布尔值或两者都是假布尔值,则它们是相等的。
如果两个值引用相同的对象,矩阵或函数,则它们是相同的。
如果它们引用不同的对象(矩阵或函数),即使两个对象具有完全相同的属性,或者两个矩阵具有完全相同的元素,它们也不完全等效。。
如果两个值都为NULL或未定义,则它们是相同的。
以下规则用于确定运算符比较的两个值==是否相同。如果这两个值属于同一类型,则检测它们的相等性。
如果两个值相同,则它们相等。
如果它们不相同,则它们不相同。
如果这两个值的类型不同,它们可能仍然相同。
使用以下规则编写转换以确保它们相等:如果一个值为null而另一个未定义,则它们是相等的。
如果一个值是数字而另一个是字符串,则将字符串转换为数字并将其与转换后的值进行比较。
如果值为true,则转换为1并进行比较。
如果值为false,则转换为0并进行比较。
如果值是对象而其他值是数字或字符串,则将对象转换为其原始类型值,并且不进行比较。
使用对象的toString()或valueOf()方法将对象转换为原始类型的值。
JavaScript主机的内部类通常首先尝试转换valueOf()方法,然后转换toString()方法,但对于Date类,首先执行toString()方法,然后执行valueOf该方法被执行。)
在定义JavaScript实现时,不属于主JavaScript语言的对象可以转换为原始值。
其他值组合不一样。