今天用到javascript的数组时,发现一个非常见的写法:
var arr = ['a','b','c'];
for (i in arr) {
console.log("tag"+i);
console.log(arr.push(i)); // 期望: 我也不知道这将会输出什么
}
输出结果:
tag0
4
tag1
5
tag2
6
var arr = ['a','b','c'];
for (i in arr) {
console.log(arr.pop()); // 期望: c b a
}
输出结果:
c
b
不知道怎么解释这种现象,基本应该是数组本身也有一个指针,for语句和pop、push操作都在同时使用该指针,于是结果就不像我们想象的那样了。
var arr = ['a','b','c'];
for (i in arr) {
delete arr[i]; // 注意理解delete 的含义
}
console.log(arr);
// 期望: []
输出结果:
[undefined, undefined, undefined]