首页 > 试题广场 >

执行以下程序,下列说法中,正确的是() var arr =

[单选题]

执行以下程序,下列说法中,正确的是()

var arr = new Array(3); ...①

arr[0] = 1;

arr.b  = 0;

console.log(arr.length); ...②

arr.forEach(value=>{

        console.log(value); ...③

})

for(var i in arr){

      console.log(arr[i]); ...④

}

  • ①式创建一个长度为3的数组
  • ②式输出结果为4

  • ③式输出结果为1 0

  • ④式输出结果为1

var arr = new Array(3); ...①    //结果是【empty ,empty ,empty 

arr[0] = 1;                                //结果是【1,empty empty 

arr.b  = 0;                                //结果是【1,empty empty ,b:0】 
                                                //通过点操作符(.)添加的属性和length属性处于同一层级,不会影响length的值

console.log(arr.length); ...②    //结果是3

arr.forEach(value=>{

        console.log(value); ...③   //结果是1 ,因为此时遍历的是【1,empty ,empty ,b:0】 
})                                              //通过点操作符(.)添加的属性可以用for...in...循环遍历,但不能用foreach循环遍历。
                                                 


for(var i in arr){

      console.log(arr[i]); ...④    //结果是1,0 ,因为此时遍历的是【1,empty ,empty ,b:0
}                                             //通过点操作符(.)添加的属性可以用for...in...循环遍历
                                             //for in既能遍历数组,也能遍历对象;
                                             //for in遍历数组时i是下标,遍历对象时i是对象的key,
                                            //对于数组来说arr[i]是1,对于键值对来说arr[i]是0
编辑于 2022-04-09 14:02:00 回复(4)
通过点操作符(.)添加的可以用forin循环遍历,但不能用foreach循环遍历。而且添加的属性和length属性处于同一层级,不会影响length的值。
发表于 2021-12-12 19:04:07 回复(6)
经过测试
for(var i in arr){

      console.log(arr[i]); ...④  
}                    
的输出是1,0

发表于 2022-03-20 11:18:30 回复(0)
foreach只遍历数组元素,for in 遍历数组和数组的可枚举属性
发表于 2023-12-15 18:46:51 回复(0)