关于JS字符串比较
来源:互联网 发布:植物奶油 知乎 编辑:程序博客网 时间:2024/06/02 13:31
From:http://bbs.51js.com/thread-77786-1-1.html
Aiming 发表于 2008-4-28 15:13
JSW 发送 2008-4-28 14:58:
在不,有个javascript的问题不明白,可以问你不?
var str1=new String("");
var str2=new String("");
alert(str1==str2);
这两个结果为什么不一样呢
JSW 发送 2008-4-28 14:58:
我总觉得该是一样的
Aimingoo 说:
好象我在书里是讲过这个的吧。
JSW 说:
嗯,有的,但是没怎么明白==,和===的区别,我的理解,上面这样应该true的,但是还是false
Aimingoo 说:
是在P45页(就是《JavaScript语言精髓与编程实践》啦)。
Aimingoo 说:
我的意思是说,引用类型作比较的时候,并不会逐字符的进行check,而是检查它们的引用地址。也就是说,只要不是“同一个对象”的不同引用,就不会等值,也不会全等。
Aimingoo 说:
显然,你的代码中用new String()两次,生成了两个引用。所以……
JSW 说:
有没有一个==和===执行出来结果不一样的情况呢?我发觉好像都是一致的
Aimingoo 说:
你把其中任意一个转换成值类型就可以了。
Aimingoo 说:
例如:
alert(str1.valueOf() == str2);
Aimingoo 说:
或者:
alert(str1+'' == str2)
JSW 说:
呵呵,明白了,谢谢哈
不好意思打扰您工作了
Aimingoo 说:
我把这个贴到51js里去吧。挺有趣的一个问题。
----------------------------------------------------------------------
编程浪子 发表于 2008-4-29 09:53
同理
2
3
4
5
6
var arr1=[1,2,3,4];
var arr2=[1,2,3,4];
alert(arr1==arr2);
alert(arr1.toString()==arr2);
</script>
----------------------------------------------------------------------
Aiming 发表于 2008-4-29 10:22
哈哈,楼上的意思是说如何比较两个数组是否相等。当然,这是个好点子。不过更完整的做法是这样:
2
3
var arr2=[1,3,2,4];
alert( arr1.length==arr2.length && (arr1.sort(), arr2.sort(), arr1.toString() == arr2) );
前提条件是这两个数组只包含值类型的数据,对引用类型的数据做上述的处理可能结果会不可预期。
- 关于JS字符串比较
- js字符串、数值比较
- js比较日期字符串
- 关于字符串比较
- 关于字符串的比较
- js字符串比较的问题
- 【js】日期字符串比较大小
- 关于js初始化函数比较
- js 里如何比较字符串大小
- Js、Jquery字符串数字比较大小!
- typeof使用,js数组,字符串比较
- js格式化日期字符串进行时间比较
- js 不区分大小写比较字符串
- Js、Jquery字符串数字比较大小。
- js字符串与数字比较大小
- js中的字符串数字比较问题
- js中数字和字符串进行比较
- JS字符串时间比较+计算时间差
- 规则,其实就是这一种的简单...
- 在页面中单独使用CKFinder
- PHP书籍推荐 【转】
- ARM简介及编程
- ORACLE日期时间函数大全
- 关于JS字符串比较
- 什么是Windows API
- 真正用来学习微机原理及汇编的好书
- CTRL-Z和CTRL-C区别
- 不要迷失在技术的海洋中
- 大一下学期...怎么安排?
- Delphi下MSMQ(Mircosoft Message Queue)实例(私有队列)
- 2009中国城市GDP前100名及广东各市GDP(目前最准确)
- String编码转换