给数组赋值 undefined后,数组length会增加,是不是说明第4行代码和第6行返回undefined的原理不同?能否从语言逻辑方面解释一下。(function(){
var arr = [1,null];
alert("数组的长度是:"+arr.length);
alert(arr[2]);
arr.push(undefined);
alert(arr[2]);
alert("数组的长度是:"+arr.length);
})();
2 回答
已采纳
xufeng123456
TA贡献4条经验 获得超2个赞
直接点说,两个 undefined 是完全一样的。
可以用java里的思想去理解,undefined是一个对象(常量)。
第四行的undefined 是因为数组越界,js机制就给你返回一个这样的 常量,
第六行返回的undefined 是你自己赋值的undefined。和js机制返回给你的常量是完全一样的。
利用js可以验证: 在末行加上 alert(arr[2]===undefined); 返回的true "==="是全等
李晓健
TA贡献1036条经验 获得超461个赞
第三行,弹出2,没什么好说的
第4行,弹出undefined ,因为数组只有2个元素,你直接去取第三3个,也就是不存在,不存在的就是undefined
第6行,弹出undefined,因为你在第5行里给数组添加了一个元素,你给的是undefined,所以第三个元素就是undefined
第7行,弹出3,本来是2,你在第5行添加了一个,所以就是3了。
添加回答
举报
0/150
提交
取消