1 var str='abcdef';
2 var obj1=new String(str);
3 var obj2=new String(str);
4
5 alert(obj1==obj2); //false
6 alert(obj1===obj2); //false今天看到等值检测看到这样的一段代码。书上说引用类型的等值比较,将直接“比较引用(的地址)”;obj1和obj2是同类型;且值都是通过一个直接量来创建的;但是String()对象是引用类型,所以它们既’不相等‘也不‘相同’。。。。但是我理解的是,obj1和obj2都是String();类型不是一样吗?并且都是通过str直接量来创建的;引用地址不也一样吗?应该是true啊
5 回答

慕运维8079593
TA贡献1876条经验 获得超5个赞
obj1和obj2 都是通过new String(str)来创建的,
但是var obj1=new String(str);开辟了一个内存空间obj1值为abcdef
var obj2=new String(str);在内存中又增加了一个obj2的值为abcdef
所以这两者值相同但是地址不相同(按地址比较)
添加回答
举报
0/150
提交
取消