为何这个2个String比较是true??

GHOST64 2017-02-18 04:28:42

<script>
var str1 = new String("hello");
var str2 = new String("hello");
document.write("1、2两个字符串的对象是一样的吗?<br/> 回答:" + (str1==str2) + "<br/>" );

var str3 = new String("hello");
var str4 = new String("hello");
document.write("3、4两个字符串的对象是一样的吗?<br/> 回答:" + (str3.toString()==str4.toString()) + "<br/>");


var str5 = new String("hello");
var str6 = "hello";
document.write("5、6两个字符串的对象是一样的吗?<br/> 回答:" + (str5==str6) + "<br/>" );
</script>



1、2两个字符串的对象是一样的吗?
回答:false
3、4两个字符串的对象是一样的吗?
回答:true
5、6两个字符串的对象是一样的吗?
回答:true

str1、2比较的内存地址,所以是false,
str3、4比较的变量的值,所以是true,
str5、6都是String对象啊,为何得到是true

那么:str5、6比较什么???
...全文
216 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
GHOST64 2017-02-18
  • 打赏
  • 举报
回复
引用 3 楼 qq_29594393 的回复:
说明一下,javascript除了基础类型之外的所有类型都是引用类型,没有指针,自然就没有指向某个内存的说法 。 javascript 和java 不能混为一谈 ,需要完全放下之前的东西 ,重新理解
谢谢! 我之前一直以为JS和java是一样的存储机制
imarshal 2017-02-18
  • 打赏
  • 举报
回复
楼主你怎么还在写分号,要去掉
二月十六 2017-02-18
  • 打赏
  • 举报
回复
引用 2 楼 u012478843 的回复:
[quote=引用 1 楼 sinat_28984567 的回复:] str5是对象object,str6是字符串String。 这样就是false了 document.write("5、6两个字符串的对象是一样的吗?<br/> 回答:" + (str5 === str6) + "<br/>");
那== 和 === 有啥不同?? 初学者没能理解,请多多包涵[/quote] http://www.cnblogs.com/yiki/archive/2012/05/08/2489687.html 这个说的很清楚,这里的第三种情况就是你说的这种情况。
当作看不见 2017-02-18
  • 打赏
  • 举报
回复
就是true ,没有任何问题,不要把java 中的思想带过来 ,java中是有equal 的,表示就是比较字符串的内容,== 表示比较内存地址。 javascript中 == 就是比较字符串的内容 ,如果不是字符串 ,就会强转为字符串再比较 所以 数字 12 和字符串"12" == 比较得到的结果也是true ,javascript 中还有一个=== 不但会比较内容 还会比较类型 这时候 12和“12” 就不再相等(类型不同)。 说明一下,javascript除了基础类型之外的所有类型都是引用类型,没有指针,自然就没有指向某个内存的说法 。 javascript 和java 不能混为一谈 ,需要完全放下之前的东西 ,重新理解
GHOST64 2017-02-18
  • 打赏
  • 举报
回复
引用 1 楼 sinat_28984567 的回复:
str5是对象object,str6是字符串String。 这样就是false了 document.write("5、6两个字符串的对象是一样的吗?<br/> 回答:" + (str5 === str6) + "<br/>");
那== 和 === 有啥不同?? 初学者没能理解,请多多包涵
二月十六 2017-02-18
  • 打赏
  • 举报
回复
str5是对象object,str6是字符串String。 这样就是false了 document.write("5、6两个字符串的对象是一样的吗?<br/> 回答:" + (str5 === str6) + "<br/>");

87,993

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧