JS获取数组长度(length属性)

在 JS 中获取数组长度非常简单,每个数组都有一个 length 属性,该属性返回数组的最大长度,即其值等于最大下标值加 1。由于数字下标必须小于 2^32-1,所以 length 属性最大值等于 2^32-1。

示例1

下面代码定义了一个空数组,然后为下标等于 100 的元素赋值,则 length 属性返回 101。因此,length 属性不能体现数组元素的实际个数。
var a = [];  //声明空数组
a[100] = 2;
console.log(a.length);  //返回101
length 属性可读可写,是一个动态属性。length 属性值也会随数组元素的变化而自动更新。同时,如果重置 length 属性值,也将影响数组的元素,具体说明如下:
  • 如果 length 属性被设置了一个比当前 length 值小的值,则数组会被截断,新长度之外的元素值都会丢失。
  • 如果 length 属性被设置了一个比当前 length 值大的值,那么空数组就会被添加到数组末尾,使得数组增长到新指定的长度,读取值都为 undefined。

示例2

下面代码演示了 length 属性值动态变化对数组的影响。
var a = [1,2,3];  //声明数组直接量
a.length = 5;  //增长数组长度
console.log(a[4]);  //返回undefined,说明该元素还没有被赋值
a.length = 2;  //缩短数组长度
console.log(a[2]);  //返回undefined,说明该元素的值已经丢失

推荐文章
smallint是什么数据类型?

smallint是什么数据类型?smallint型数据的比int更小存储大小为2个字节,共16位。其中15位用于表示数值的大小,1位用于表示符号。SMALLINT数据类型是一种精确数值数据类型,其精度

C++ STL prev()和next()函数用法详解

《C++STLadvance()函数》一节中,详细讲解了advance()函数的功能,其可以将指定迭代器前移或后移n个位置的距离。 但值得一提的是,advance()函数移动的是源迭代器,举个例子:

C++重载插入运算符(<<)和提取运算符(>>)详解

必须为任何想和输出流迭代器一起使用的类类型重载插入和提取运算符。对于自己的类,这是很容易的事。必要的话,可以提供get和set函数来访问任何private或public数据成员,或者将运算符函数指定为

itemValue:选项的值。 itemLabel:选项的值。 items:选项的提示信息。 示例 publicclassNewBean{ privateListfanList; p

Spring IoC介绍

Java 图1  IoC相关概念示意图Spring publicclassApp{ publicstaticvoidmain(String[]args){ ApplicationContext

进程间的五种通信方式是什么?

进程间通信(IPC,InterProcessCommunication)是指在不同进程之间传播或交换信息。IPC的方式通常有管道(包括无名管道和命名管道)、消息队列、信号量、共享存储、Socket、S

jQuery detach()和empty()方法

jQuery删除元素除了上节教程介绍的remove()方法外,还有detach()和empty()方法,本节教程就对这两个方法进行介绍。 jQuerydetach()方法 在jQuery中,deta

MySQL事务隔离级别详解(附带实例)

在《数据库事务》一节中介绍了MySQL事务的四大特性,其中事务的隔离性就是指当多个事务同时运行时,各事务之间相互隔离,不可互相干扰。 如果事务没有隔离性,就容易出现脏读、不可重复读和幻读等情况。

C++ if else详解

程序的运行可以看作是一个人在走路时迈出的步伐。要到达目的地,必须从头开始,然后迈开脚步,一步接一步,直到到达目的地。没学本节之前,我们所编写的程序就像有一条要跟着执行的“路径”,如图1所示。 图

Java hibernate.connection.url=属性值 常用数据库连接时使用的URL 数据库 驱动类 DB2  jdbc:db2://localhost:5000/db_

MySQL常用运算符概述

在MySQL中,可以通过运算符来获取表结构以外的另一种数据。例如,学生表中存在一个birth字段,这个字段表示学生的出生年份。如果想得到这个学生的实际年龄,可以使用MySQL中的算术运算符用当前的年份

Maven配置镜像仓库

如果仓库A能提供仓库B存储的所有服务,那么就把A叫作B的镜像。比如http://maven.net.cn/content/groups/public就是中央仓库http://repo1.maven.o

C语言scanf函数用法完全攻略

本节介绍输入函数scanf的用法。scanf和printf一样,非常重要,而且用得非常多,所以一定要掌握。 概述 scanf的功能用一句话来概括就是“通过键盘给程序中的变量赋值”。该函数的原型为:

Access数据库对象包括哪六个?

Access数据库主要对象包括:数据表、查询、报表、窗体、宏、模块。数据表(Table)——表是Access数据库的核心对象,主要是用于存储数据,是创建其他5种对象的基础。数据表是以行、列来显示数据记

lojack的作用是什么?

lojack的作用是:防盗。lojack是一款防盗/寻回软件,类似于GPS,但性能要高于GPS,可以24小时追踪巡逻队伍,24小时直属监控中心,多重追踪技术,隐蔽式追踪装置,防干扰追踪装置,在货柜大厦

VS2015使用教程(使用VS2015编写C语言程序)

前面我们给出了一段完整的C语言代码,就是在显示器上输出“C语言中文网”,如下所示: #include intmain() { puts("C语言中文网"); return0; } 本节我

addOrder(Orderorder) order:为Order对象的示例,可以通过Order类的desc方法(降序方法)和asc方法(升序方法)指定等排序方式。 示例 Sessionses

getAttributeNames() 保存application对象的所有属性名称的枚举对象。 示例

顺序表(顺序存储结构)及初始化详解

顺序表,全名顺序存储结构,是线性表的一种。通过《什么是线性表》一节的学习我们知道,线性表用于存储逻辑关系为“一对一”的数据,顺序表自然也不例外。 不仅如此,顺序表对数据的物理存储结构也有要求。顺序表

Makefile命令的编写

通过上个章节的描述,我们已经知道了Makefile的规则是什么,他是由依赖关系规则和命令组成的。所使用的命令是由shell命令行组成,他们是一条一条执行的。多个命令之间要使用分号隔开,Makefile