var arr = ['*','##',"***","&&","****","##*"]; arr[7] = "**";为什么长度是8
2 回答
Loliner
TA贡献1条经验 获得超1个赞
arr[7] = "**"表示给数组arr下标为7的元素赋值上字符串"**",因为数组的起始下标为0,则0到7总共有8位,也就有8个元素,所以长度是8。
但是需要注意的是,原数组长度为6,也就是下标为0、1、2、3、4、5的元素都有值。现在我们直接给下标为7的赋值后,下标为6的元素并非不存在,输出其值为undefined,可以理解为下标为6的地方有个叫undefined小人占着茅坑不拉屎。
最后,当我们声明一个空数组,直接给下标为n的位置赋值,那么该数组的length肯定是n+1,因为前面有n个undefined的小人占着茅坑不拉屎。
希望能帮到你。^_^
添加回答
举报
0/150
提交
取消