学习JS遇到一个问题:
var arr1 = ['a','b','c'];
var arr2 = ['a','b','c'];
alert(arr1.toString() === arr2.toString());
alert(typeof(arr1.valueOf()));
alert(typeof(arr2.valueOf()));alert(arr1.valueOf() == arr2.valueOf()); //false
alert(arr2.valueOf());
alert(arr1.valueOf() === arr2.valueOf()); //falsevalueOf() 方法返回 Array 对象的原始值。
原始值不是返回的是a,b,c吗.
arr1.valueOf()与arr2.valueOf()为什么不相等?
var arr1 = ['a','b','c'];
var arr2 = ['a','b','c'];
alert(arr1.toString() === arr2.toString());
alert(typeof(arr1.valueOf()));
alert(typeof(arr2.valueOf()));alert(arr1.valueOf() == arr2.valueOf()); //false
alert(arr2.valueOf());
alert(arr1.valueOf() === arr2.valueOf()); //falsevalueOf() 方法返回 Array 对象的原始值。
原始值不是返回的是a,b,c吗.
arr1.valueOf()与arr2.valueOf()为什么不相等?
解决方案 »
- Jquery--end()使用的问题
- 如何通过js代码设置页面的title节点
- 想实现下面的功能:通过file选择上传XML文件,想实现将选择的文件内容显示在GridView里面
- 窗口失去焦点与窗口获取焦点是同一个效果吗?
- 高分求购 具有读取数据库功能 的 js 树实例
- sql 2005 树形表非循环递归 转json
- 怎么在选择datagrid中的某行数据后,就同时把相应的数据填充到表格外的文本框中呢??
- 如何实现双下拉列表?
- 问一个正则表达式的问题
- nextSibling获取value问题
- javascript 的问题 有关日期加上天数等于另一日期的问题
- 怎么解析这个字符串(/Date(1278903921551+0800)/)为时间格式
arr1.valueOf().toString()
alert( arr2===arr2.valueOf() );
alert( arr2===arr2.valueOf() ); //true
这样的话,数组的valueOf()返回的还是数组本身了?但是
var a = new String('aa');
var b = new String('aa');
alert(a.valueOf() == b.valueOf());//true
alert(a.valueOf() === b.valueOf());//true
这两个是字符串对象,为什么却可以进行比较呢.
var arr1 = ['a','b','c'];
var arr2 = ['a','b','c'];
alert(arr1.valueOf());
alert(arr2.toString());
alert(arr1.valueOf()==arr2.valueOf());
alert(arr1.toString()==arr2.toString());
数组的valueOf返回数组本身,数组之间的相等比较的不是toString的相等,而是比较的内存地址,所以两个数组不相等。
然后string类型的valueOf返回的还是string,string跟number是一样的,是基本类型,比较的只是值相等。
恩,都是楼上说的,我总结下。。