关于js的问题

[复制链接]
查看11 | 回复5 | 2008-7-27 14:45:13 | 显示全部楼层 |阅读模式
var string1 = "hello";
var string2 = "hello";
var str1 = new String(string1);
var str2 = new String(string2);
if (str2 == str1)它的结果为false
为什么str1不等于str2呢?

回复

使用道具 举报

千问 | 2008-7-27 14:45:13 | 显示全部楼层
很简单你的string1 和string2 是2个变量 可以拿来直接比较new String(string1)是一个实例 而var str1是你为这个实例定义的一个对象引用 str1和str2里面存放着string1和string2的值的地址 在托管堆里 你把2个地址拿来比较当然是false了.
回复

使用道具 举报

千问 | 2008-7-27 14:45:13 | 显示全部楼层
==是判断是否是同一个对象 var str1 = new String(string1); var str2 = new String(string2); 这是两个不同的对象返回结果false 是否相同用str1.equals(str2) 用equals()方法判断就可以了
回复

使用道具 举报

千问 | 2008-7-27 14:45:13 | 显示全部楼层
<
回复

使用道具 举报

千问 | 2008-7-27 14:45:13 | 显示全部楼层
1楼所说的equals()方法应该是java领域的,在js里面是不存在的。如果你想比较值的话,在js里面可以用str1.value == str2.value
回复

使用道具 举报

千问 | 2008-7-27 14:45:13 | 显示全部楼层
字符串的比较是str1.equals(str2);你的比较是比较的对象地址,肯定是不对的。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行