arrayName.length是否为对象属性?如果是,它所属的对象是什么?
数组length属性相关疑问解答
核心结论
arrayName.length确实属于对象属性,它是数组实例自身的自有属性。
原理说明
- JavaScript中除了7种基础类型(undefined、null、number、string、boolean、symbol、bigint)之外,所有复合类型的值本质上都是对象,数组就是内置
Array构造函数生成的特殊对象,专门用于存储有序集合,因此支持用点表示法访问属性完全符合语法规则。 length属性不是从Array原型链继承来的,而是每个数组实例自己持有的属性,它的值会自动跟随数组元素的增减同步更新,你也可以主动修改该属性的值实现数组截断、扩容等操作:
const numbers = [23,45,76,78]; // 主动修改length截断数组 numbers.length = 2; console.log(numbers); // 输出 [23, 45]
- 你可以用
hasOwnProperty方法验证该属性属于实例自身:
const numbers = [23,45,76,78]; console.log(numbers.hasOwnProperty('length')); // 输出 true
内容的提问来源于stack exchange,提问作者user15467736
相关产品推荐
相关产品推荐

