首页 > Web开发 > 详细

关于js中值的比较规则问题

时间:2016-02-07 17:24:36      阅读:183      评论:0      收藏:0      [点我收藏+]

上一篇文章提到了javascript中可变值与不可变值,如果你不知道什么是可变值和不可变值,可以先去看看那篇文章,再回来看这篇,因为这篇文章是基于可变值与不可变值讲解的。

 

那我就默认你知道什么是可变值与不可变值。

 

1.对于不可变值来说(也就是数字,字符串,布尔,null,undefined),它们是比较值是否相等,如果值是相等的那么它们就是相等的。

2.但对于可变值来说(对象,数组),它们显然比较值不太合适,因为它们的值是可以改变的,所以javascript为了避免这种情况的发生,把它们的比较规则修改成比较引用是否相同也就是说看它们是否是同一个东西创建出来的,如果是那么它们就相等。

 

 1 var a = [];
 2 var b = a;
 3 a[0]=2;
 4 console.log(a); >>[2]
 5 console.log(b); >>[2]  同时也把b的值也修改了,因为数组是可变的类型。
 6 console.log(a==b); >>true
 7 console.log(a===b); >>true
 
、、、、、、、、、、、、、、、、、、、、、、、、
1 var a = "11"; 2 var b = a; 3 a = "22"; 4 console.log(a); >>"22" 5 console.log(b); >>"11" 6 console.log(a==b); >>false 7 console.log(a===b); >>false

 

 

 

关于js中值的比较规则问题

原文:http://www.cnblogs.com/pssp/p/5184678.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!