JavaScript参考手册
排列 | Array
Array.length
length
是Array
的实例属性。返回或设置一个数组中的元素个数。该值是一个无符号 32-bit 整数,并且总是大于数组最高项的下标。
var items = ['shoes', 'shirts', 'socks', 'sweaters'];
items.length;
// returns 4
描述
length
属性的值是一个 0 到 232的-1次方 的整数。
var namelistA = new Array(4294967296); //2 to the 32nd power = 4294967296
var namelistC = new Array(-100) //negative sign
console.log(namelistA.length); //RangeError: Invalid array length
console.log(namelistC.length); //RangeError: Invalid array length
var namelistB = [];
namelistB.length = Math.pow(2,32)-1; //set array length less than 2 to the 32nd power
console.log(namelistB.length);
//4294967295
你可以设置length
属性的值来截断任何数组。当通过改变length
属性值来扩展数组时,实际元素的数目将会增加。例如:将一个拥有 2 个元素的数组的 length
属性值设为 3 时,那么这个数组将会包含3个元素,并且,第三个元素的值将会是undefined
。另见length
与数值性质之间的关系。
Array.length
属性的属性特性
|:----|
| Writable | yes |
| Enumerable | no |
| Configurable | no |
-
Writable
:如果设置为false
,该属性值将不能被修改。
-
Configurable
:如果设置为false
,删除或更改任何属性都将会失败。
-
Enumerable
:如果设置为true
,属性可以通过迭代器for或for..in进行迭代。
示例
遍历数组
下面的例子中,通过数组下标遍历数组元素,并把每个元素的值修改为原值的2倍。
var numbers = [1, 2, 3, 4, 5];
var length = numbers.length;
for (var i = 0; i < length; i++) {
numbers[i] *= 2;
}
// numbers is now [2, 4, 6, 8, 10]
截断数组
下面的例子中,如果数组长度大于 3,则把该数组的长度截断为 3 。
var numbers = [1, 2, 3, 4, 5];
if (numbers.length > 3) {
numbers.length = 3;
}
console.log(numbers); // [1, 2, 3]
console.log(numbers.length); // 3
规范
Specification |
Status |
Comment |
---|---|---|
ECMAScript 1st Edition (ECMA-262) |
Standard |
Initial definition. |
ECMAScript 5.1 (ECMA-262)The definition of 'Array.length' in that specification. |
Standard |
|
ECMAScript 2015 (6th Edition, ECMA-262)The definition of 'Array.length' in that specification. |
Standard |
|
ECMAScript Latest Draft (ECMA-262)The definition of 'Array.length' in that specification. |
Living Standard |
|
浏览器兼容性
Feature |
Chrome |
Edge |
Firefox |
Internet Explorer |
Opera |
Safari |
---|---|---|---|---|---|---|
Basic Support |
(Yes) |
(Yes) |
(Yes) |
(Yes) |
(Yes) |
(Yes) |
Feature |
Android |
Chrome for Android |
Edge mobile |
Firefox for Android |
IE mobile |
Opera Android |
iOS Safari |
---|---|---|---|---|---|---|---|
Basic Support |
(Yes) |
(Yes) |
(Yes) |
(Yes) |
(Yes) |
(Yes) |
(Yes) |
排列 | Array相关
JavaScript 是一种高级编程语言,通过解释执行,是一门动态类型,面向对象(基于原型)的解释型语言。它已经由ECMA(欧洲电脑制造商协会)通过 ECMAScript 实现语言的标准化。它被世界上的绝大多数网站所使用,也被世界主流浏览器( Chrome、IE、FireFox、Safari、Opera )支持。JavaScript 是一门基于原型、函数先行的语言,是一门多范式的语言,它支持面向对象编程,命令式编程,以及函数式编程。它提供语法来操控文本、数组、日期以及正则表达式等,不支持 I/O,比如网络