类数组
- 定义: 输出的结果类似于数组,但是不能调用数组的方法
- 例如:
function test() {
console.log(arguments); //此时输出的arguments类似于数组,为[1,2,3,4,5,6]
}
test(1, 2, 3, 4, 5, 6);
- 组成部分:属性要为索引(数字)属性,必须有length属性
面试题(回答obj的构成)
var obj = {
"2": "a",
"3": "b",
"length": 2,
"push": Array.prototype.push
}
obj.push('c');
obj.push('d')
结果为:
var obj = {
"2": "c",
"3": "d",
"length": 4,
"push": Array.prototype.push
}
原理:深入理解Push()原理
typeof实现(工具)
function type(target) {
var compare = {
"[object Array]": "Array",
"[object Object]": "object",
"[object Number]": "number-object",
"[object Boolean]": "boolean-object",
"[object String]": "string-object"
}
if (target === null) {
return "null";
}
if (typeof(target) == "object") {
var str = Object.prototype.toString.call(target);
return compare[str];
} else {
return typeof(target);
}
}
网友评论