浅谈js数组中的length属性

前言

  一位正在学习前端的菜鸟,虽菜,但还未放弃。

内容

  首先,我们都知道每个数组都有一个length属性 这个length属性一般我们用来循环遍历的约束,一般我们都会把他认为是该数组里面有几个元素这个length就是多少-1(因为数组下标是从0开始的) 但实际上他并不是这个样子的 看下图:

  从上面那张图我们可以看到arr中的length居然是0  而二三行的代码也是执行有效的 是能够打印出来的 这又是为什么呢?

  带着这个问题 我们再来看以下一张图

  从上面那张图我们可以看到arr中的length居然又莫名其妙的变成了11 这整的是不是有点懵逼了???不要紧 我们来看一下arr整个数组打印出来究竟是个啥

  其实前面的empty * 10 就是[undefined,undefined......] 即arr[0] = undefined,arr[1] = undefined ......

  再绕回来,为什么数组的下标是11呢?

  其实是js中数组的length是根据数组的下标最大值来决定的,这个最大值只能是0到2的32次方这个范围内,如果不是这个范围内,js内部会先将这个下标进行隐式转换

  即arr["10"]= 10 等于arr[10] = 10 其实这句话会在数组里面创建11(因为数组下标是从0开始的)个项,没有值的项就用undefined来占位 所以这里的length 才是11

  那再看回来arr这个数组,为什么会存在a下标与b下标呢?

  其实在js中数组的下标是不能存在字符串的,但如果我们尝试着把字符串作为下标使用,其实js会把这个认为是属性来看待,就像我们的对象一样,以键值对的形式存在。

  当然,既然是被当做是属性,那么像push,pop这些添加和删除的方法也就对这些属性无效了

(0)

相关推荐

  • JS中数组属性和方法太多难以记忆?看这篇文章就够了

    数组一直是js中最重要的数据类型之一,其有很多属性和方法,包括常用的和不常用的,难以记忆,本文从增删改查四个基本操作入手,帮助大家更快记忆. 一 数组的属性 1 length属性 length属性是数 ...

  • JS数组和字符串汇总

    数组 1. 基本常识 数组是引用类型的一种,什么是引用类型呢? 和原始类型不同,引用类型变量中存放的仅仅是引用对象的内存地址. 所以,当我们复制引用类型的时候,复制的仅仅是它的地址罢了. 也就是说,任 ...

  • 35.数组.选择排序

    选择排序: 第一轮: 第0个与第1个比, 如果  第0个 > 第1个  那就交换位置,第0个再与第2个比...... 第二轮: 第1个与第2比, ...................直到排序完 ...

  • 面试官在“逗”你系列:数组去重你会几种呀?

    前言 数组去重是一个老生常谈的话题,也是前端童鞋在面试时的一道高频题.本文将深入的探索数组去重的原理及实现,为各位小伙伴提供多种可以反手"调戏"面试官的解决方案. 话不多说,上去就 ...

  • JavaScript--总结三(数组和函数)

    数组 数组的概念: 将多个元素(通常是同一类型)按照一定顺序排列放到一个集合中,这个集合称之为数组---简(一组有序的数据) 数组的作用:可以一次性存储多个数据 数组的定义: 1.通过构造函数创建数组 ...

  • JavaScript数组 - 属性/遍历

    数组的属性 数组的长度: arr.length 访问数组元素的个数 注意:length属性,不是只读的,是可以设置的 举个小例子: var arr =["red", "b ...

  • 浅谈为什么西方油画中塑造的丰腴女人形象看上去却是那么美?

    丰腴,直白地讲,就是有些胖或者微胖的意思. 喜欢油画艺术的朋友不难发现,西方油画中表现女性题材的作品非常多,其中有不少表现的是丰腴的女性形象,以至很多人认为西方人是以胖为美的. 现实中,通常人们多不以 ...

  • 浅谈语言材料中逻辑推理的“还原”

    浅谈语言材料中逻辑推理的"还原" 邓旺林 不少语言材料尤其是说理性语言材料中包含着逻辑推理,而这些逻辑推理大都不像逻辑学教材所概括的那样单纯.完整和规范,难以让人一目了然.因而将其 ...

  • 浅谈信息技术教学中渗透环境教育

    浅谈如何在信息技术教学中渗透环保教育. 泰来县江桥镇中心小学 赵巍 [摘要]环境问题已成为现代社会普遍关心的一个问题,人们越来越清楚地认识到环境教育的重要性.信息技术作为一门技术性学科,在教学中提出环 ...

  • 浅谈JS运算符&&和|| 及其优先级

    今天看了一段YUI compressor压缩的js代码: userNum && (ind += index,ind >= userNum && (ind -= u ...

  • 浅谈钣金行业中的精益生产管理变革

    钣金行业市场竞争已经白热化,市场价格在逐年降低,而制造成本却不断增加,企业的利润空间已经越来越小,如何在这种激烈的竞争环境下立于不败之地,只有向内部要利润.这自然都想到了精益生产,也是很多企业突破瓶颈 ...

  • 浅谈担保司法解释中抵押担保新规定对银行信贷业务的影响

    作者 中国工商银行宁夏分行法律事务部 陈福录 为正确适用民法典有关担保制度的规定,最高人民法院结合民事审判实践,在深入研判.公开征求意见的基础上,并经分析论证,于2020年12月31日发布了<关 ...

  • 浅谈Transformer模型中的位置表示

    作者:哈工大SCIR 徐啸 0. 何为位置信息 首先简单谈一下位置信息.一般将位置信息简单分为绝对位置信息和相对位置信息,并且前者对句子语义的影响不大,更为重要的是后者. 以情感分析 (Sentime ...

  • 吕梁楼承板厂家浅谈多高层建筑中的楼承板

    楼承板是近年来发展很快的领域,这种结构工业化.商品化程度高,施工快,综合效益高,市场需求量很大.接下来,吕梁楼承板厂家与您一起分析:     1.因楼承板可做到大跨度.大空间,分隔使用灵活,而且施工速 ...

  • 浅谈产品结构设计中的改模与修模

    改模与修模是我们产品结构设计中的必不可少的阶段,说的专业点叫设计变更.行业内都说改模和修模. 当一个职场新手进入产品结构设计师这个行业的时候,可能会把改模和修模两个弄混,而且很不严谨的去对待改模与修模 ...