课程
/前端开发
/JavaScript
/JavaScript深入浅出
如题,为什么99 in arr1可以返回true,而98 in arr1 返回的事flase
2015-03-25
源自:JavaScript深入浅出 5-2
正在回答
这就是稀疏数组啊,例如:
var arr = [];
arr[99] = 1;
99 in arr; // true
98 in arr; // false
虽然通过arr[99]使得数组长度变为100,但JavaScript并不会自动创建从0 ~ 98的其它Key。
这就是稀疏数组。
MissHoya 提问者
var arr=[1]; arr[99]=100; for(var i=0;i<arr.length;i++){ document.write(arr[i]); }
输出结果:1 undefine。。。100;
中间虽然没赋值,但系统默认都是undefine,所以说数组索引下的98下没有值,返回false
因为下标为99的位置有值,而下标为98的位置没有值!
ewfesgsrdgdrtt
asdfsdrgdsrg
举报
由浅入深学习JS语言特性,且解析JS常见误区,从入门到掌握
4 回答0 in arr1//ture
2 回答arr1:null 无法读出arr1.length,导致报错
4 回答!function(){function fd(){}; return delete fd;}() 返回true
1 回答为什么typeof(function(){ }) 返回的是function
4 回答为什么最后new func返回的是b:100??????????