每天一个前端知识(89):区分数组对象和类数组对象

frontend

Posted by Tiny on August 22, 2017
function test() {
    // arguments 是类数组对象
    console.log(arguments); // { '0': 1, '1': 2, '2': 3 }
    // 判断arguments的类型
    console.log(typeof arguments); // object
    // 判断是否是数组
    console.log(Array.isArray(arguments)); // false
    // 判断arguments是什么类型的对象
    console.log(Object.prototype.toString.call(arguments)); // [object Arguments]
}
test(1, 2, 3);

谨记

绝不重载与其它类型有重叠的结构类型。

当重载一个结构类型与其它类型时,先测试其它类型。

当重载其它对象类型时,接受真数组而不是类数组对象。

文档标注你的API是否接受真数组或类数组值。

使用ES5提供的Array.isArray方法测试真数组。

参考资料:https://lee134134134.github.io/page/3/