var a=[]
if(a==[]){ //判断为空数组
console.log(true);
}else{
console.log(false);
}
如题,为什么不能使用上面的方式判断数组为空数组,而必须通过数组长度?
不知道哪位道友回答一下
var a=[]
if(a==[]){ //判断为空数组
console.log(true);
}else{
console.log(false);
}
如题,为什么不能使用上面的方式判断数组为空数组,而必须通过数组长度?
不知道哪位道友回答一下
这源自于对相等的定义:两个引用类型变量比较相等,必须是引用同一对象才成立。
语言本身的定义就是这样,a和[]它可以等可以不等,总得选一个吧,JS选了不等。
python和JS很类似,但是在这种地方对相等的定义就不同:
13 回答12.8k 阅读
8 回答2.6k 阅读
2 回答5.1k 阅读✓ 已解决
7 回答2k 阅读
5 回答910 阅读
3 回答2.2k 阅读✓ 已解决
3 回答1.1k 阅读✓ 已解决
数组是引用型数据,而js规定,两个引用型的数据进行相等判断的时候和全等判断是一样的,是比较内存地址(引用地址)是否相同。虽然两个都是空数组,但是他们并不是同一个数据,所以内存地址不一样