Array

JavaScript Array 类是用于构造数组的全局对象;它是高级、像列表的对象。

描述

Arrays are list-like objects whose prototype has methods to perform traversal and mutation operations. Neither the length of a JavaScript array nor the types of its elements are fixed. Since an array's length can change at any time, and data can be stored at non-contiguous locations in the array, JavaScript arrays are not guaranteed to be dense; this depends on how the programmer chooses to use them. In general, these are convenient characteristics; but if these features are not desirable for your particular use, you might consider using typed arrays.

Arrays cannot use strings as element indexes (as in an associative array ) but must use integers. Setting or accessing via non-integers using bracket notation (or dot notation ) will not set or retrieve an element from the array list itself, but will set or access a variable associated with that array's 对象特性集合 . The array's object properties and list of array elements are separate, and the array's traversal and mutation operations cannot be applied to these named properties.

常见操作

创建数组

let fruits = ['Apple', 'Banana']
console.log(fruits.length)
// 2
					

使用索引位置访问数组项

let first = fruits[0]
// Apple
let last = fruits[fruits.length - 1]
// Banana
					

Loop over an Array

fruits.forEach(function(item, index, array) {
  console.log(item, index)
})
// Apple 0
// Banana 1
					

Add an item to the end of an Array

let newLength = fruits.push('Orange')
// ["Apple", "Banana", "Orange"]
					

Remove an item from the end of an Array

let last = fruits.pop() // remove Orange (from the end)
// ["Apple", "Banana"]
					

Remove an item from the beginning of an Array

let first = fruits.shift() // remove Apple from the front
// ["Banana"]
					

Add an item to the beginning of an Array

let newLength = fruits.unshift('Strawberry') // add to the front
// ["Strawberry", "Banana"]
					

Find the index of an item in the Array

fruits.push('Mango')
// ["Strawberry", "Banana", "Mango"]
let pos = fruits.indexOf('Banana')
// 1
					

Remove an item by index position

let removedItem = fruits.splice(pos, 1) // this is how to remove an item
// ["Strawberry", "Mango"]
					

Remove items from an index position

let vegetables = ['Cabbage', 'Turnip', 'Radish', 'Carrot']
console.log(vegetables)
// ["Cabbage", "Turnip", "Radish", "Carrot"]
let pos = 1
let n = 2
let removedItems = vegetables.splice(pos, n)
// this is how to remove items, n defines the number of items to be removed,
// starting at the index position specified by pos and progressing toward the end of array.
console.log(vegetables)
// ["Cabbage", "Carrot"] (the original array is changed)
console.log(removedItems)
// ["Turnip", "Radish"]
					

拷贝数组

let shallowCopy = fruits.slice() // this is how to make a copy
// ["Strawberry", "Mango"]
					

访问数组元素

JavaScript arrays are zero-indexed. The first element of an array is at index 0 , and the last element is at the index value equal to the value of the array's length property minus 1 .

Using an invalid index number returns undefined .

let arr = ['this is the first element', 'this is the second element', 'this is the last element']
console.log(arr[0])              // logs 'this is the first element'
console.log(arr[1])              // logs 'this is the second element'
console.log(arr[arr.length - 1]) // logs 'this is the last element'
					

Array elements are object properties in the same way that toString is a property (to be specific, however, toString() is a method). Nevertheless, trying to access an element of an array as follows throws a syntax error because the property name is not valid:

console.log(arr.0) // a syntax error
					

There is nothing special about JavaScript arrays and the properties that cause this. JavaScript properties that begin with a digit cannot be referenced with dot notation and must be accessed using bracket notation.

For example, if you had an object with a property named 3d , it can only be referenced using bracket notation.

let years = [1950, 1960, 1970, 1980, 1990, 2000, 2010]
console.log(years.0)   // a syntax error
console.log(years[0])  // works properly
					
renderer.3d.setTexture(model, 'character.png')     // a syntax error
renderer['3d'].setTexture(model, 'character.png')  // works properly
					

In the 3d example, '3d' had to be quoted (because it begins with a digit). But it's also possible to quote the array indexes as well (e.g., years['2'] instead of years[2] ), although it's not necessary.

2 in years[2] is coerced into a string by the JavaScript engine through an implicit toString conversion. As a result, '2' and '02' would refer to two different slots on the years object, and the following example could be true :

console.log(years['2'] != years['02'])
					

Relationship between length and numerical properties

A JavaScript array's length property and numerical properties are connected.

Several of the built-in array methods (e.g., join() , slice() , indexOf() , etc.) take into account the value of an array's length property when they're called.

Other methods (e.g., push() , splice() , etc.) also result in updates to an array's length 特性。

const fruits = []
fruits.push('banana', 'apple', 'peach')
console.log(fruits.length) // 3
					

When setting a property on a JavaScript array when the property is a valid array index and that index is outside the current bounds of the array, the engine will update the array's length property accordingly:

fruits[5] = 'mango'
console.log(fruits[5])            // 'mango'
console.log(Object.keys(fruits))  // ['0', '1', '2', '5']
console.log(fruits.length)        // 6
					

Increasing the length .

fruits.length = 10
console.log(fruits)              // ['banana', 'apple', 'peach', empty x 2, 'mango', empty x 4]
console.log(Object.keys(fruits)) // ['0', '1', '2', '5']
console.log(fruits.length)       // 10
console.log(fruits[8])           // undefined
					

Decreasing the length property does, however, delete elements.

fruits.length = 2
console.log(Object.keys(fruits)) // ['0', '1']
console.log(fruits.length)       // 2
					

This is explained further on the Array.length 页面。

Creating an array using the result of a match

The result of a match between a RegExp and a string can create a JavaScript array. This array has properties and elements which provide information about the match. Such an array is returned by RegExp.exec() , String.match() ,和 String.replace() .

To help explain these properties and elements, see this example and then refer to the table below:

// Match one d followed by one or more b's followed by one d
// Remember matched b's and the following d
// Ignore case
const myRe = /d(b+)(d)/i
const myArray = myRe.exec('cdbBdbsbz')
					

The properties and elements returned from this match are as follows:

特性/元素 描述 范例
input
只读
The original string against which the regular expression was matched. "cdbBdbsbz"
index
只读
The zero-based index of the match in the string. 1
[0]
只读
The last matched characters. "dbBd"
[1], ...[n]
只读
Elements that specify the parenthesized substring matches (if included) in the regular expression. The number of possible parenthesized substrings is unlimited. [1]: "bB"
[2]: "d"

构造函数

Array()
创建新的 Array 对象。

静态特性

get Array[@@species]
The constructor function is used to create derived objects.

静态方法

Array.from()
创建新的 Array 实例从像数组或可迭代对象。
Array.isArray()
返回 true 若自变量是数组,或 false 否则。
Array.of()
创建新的 Array instance with a variable number of arguments, regardless of number or type of the arguments.

实例特性

Array.prototype.length
反射数组元素的个数。
Array.prototype[@@unscopables]
A symbol containing property names to exclude from a with binding scope.

实例方法

Array.prototype.concat()
Returns a new array that is this array joined with other array(s) and/or value(s).
Array.prototype.copyWithin()
Copies a sequence of array elements within the array.
Array.prototype.entries()
返回新 Array Iterator object that contains the key/value pairs for each index in the array.
Array.prototype.every()
返回 true if every element in this array satisfies the testing function.
Array.prototype.fill()
Fills all the elements of an array from a start index to an end index with a static value.
Array.prototype.filter()
Returns a new array containing all elements of the calling array for which the provided filtering function returns true .
Array.prototype.find()
Returns the found element in the array, if some element in the array satisfies the testing function, or undefined if not found.
Array.prototype.findIndex()
Returns the found index in the array, if an element in the array satisfies the testing function, or -1 if not found.
Array.prototype.forEach()
Calls a function for each element in the array.
Array.prototype.includes()
Determines whether the array contains a value, returning true or false as appropriate.
Array.prototype.indexOf()
Returns the first (least) index of an element within the array equal to an element, or -1 if none is found.
Array.prototype.join()
Joins all elements of an array into a string.
Array.prototype.keys()
返回新 Array Iterator that contains the keys for each index in the array.
Array.prototype.lastIndexOf()
Returns the last (greatest) index of an element within the array equal to an element, or -1 if none is found.
Array.prototype.map()
Returns a new array containing the results of calling a function on every element in this array.
Array.prototype.pop()
Removes the last element from an array and returns that element.
Array.prototype.push()
Adds one or more elements to the end of an array, and returns the new length of the array.
Array.prototype.reduce()
Apply a function against an accumulator and each value of the array (from left-to-right) as to reduce it to a single value.
Array.prototype.reduceRight()
Apply a funciton against an accumulator> and each value of the array (from right-to-left) as to reduce it to a single value.
Array.prototype.reverse()
Reverses the order of the elements of an array in place . (First becomes the last, last becomes first.)
Array.prototype.shift()
Removes the first element from an array and returns that element.
Array.prototype.slice()
Extracts a section of the calling array and returns a new array.
Array.prototype.some()
返回 true if at least one element in this array satisfies the provided testing function.
Array.prototype.sort()
Sorts the elements of an array in place and returns the array.
Array.prototype.splice()
Adds and/or removes elements from an array.
Array.prototype.toLocaleString()
Returns a localized string representing the array and its elements. Overrides the Object.prototype.toLocaleString() 方法。
Array.prototype.toString()
Returns a string representing the array and its elements. Overrides the Object.prototype.toString() 方法。
Array.prototype.unshift()
Adds one or more elements to the front of an array, and returns the new length of the array.
Array.prototype.values()
返回新 Array Iterator object that contains the values for each index in the array.
Array.prototype[@@iterator]()
返回新 Array Iterator object that contains the values for each index in the array.

范例

创建数组

The following example creates an array, msgArray , with a length of 0 , then assigns values to msgArray[0] and msgArray[99] , changing the length of the array to 100 .

let msgArray = []
msgArray[0] = 'Hello'
msgArray[99] = 'world'
if (msgArray.length === 100) {
  console.log('The length is 100.')
}
					

创建 2 维数组

The following creates a chessboard as a two-dimensional array of strings. The first move is made by copying the 'p' in board[6][4] to board[4][4] . The old position at [6][4] is made blank.

let board = [
  ['R','N','B','Q','K','B','N','R'],
  ['P','P','P','P','P','P','P','P'],
  [' ',' ',' ',' ',' ',' ',' ',' '],
  [' ',' ',' ',' ',' ',' ',' ',' '],
  [' ',' ',' ',' ',' ',' ',' ',' '],
  [' ',' ',' ',' ',' ',' ',' ',' '],
  ['p','p','p','p','p','p','p','p'],
  ['r','n','b','q','k','b','n','r'] ]
console.log(board.join('\n') + '\n\n')
// Move King's Pawn forward 2
board[4][4] = board[6][4]
board[6][4] = ' '
console.log(board.join('\n'))
					

这里是输出:

R,N,B,Q,K,B,N,R
P,P,P,P,P,P,P,P
 , , , , , , ,
 , , , , , , ,
 , , , , , , ,
 , , , , , , ,
p,p,p,p,p,p,p,p
r,n,b,q,k,b,n,r
R,N,B,Q,K,B,N,R
P,P,P,P,P,P,P,P
 , , , , , , ,
 , , , , , , ,
 , , , ,p, , ,
 , , , , , , ,
p,p,p,p, ,p,p,p
r,n,b,q,k,b,n,r
					

Using an array to tabulate a set of values

values = []
for (let x = 0; x < 10; x++){
 values.push([
  2 ** x,
  2 * x ** 2
 ])
}
console.table(values)
					

Results in

// The first column is the index
0	1	0
1	2	2
2	4	8
3	8	18
4	16	32
5	32	50
6	64	72
7	128	98
8	256	128
9	512	162
					

规范

规范 Initial publication
ECMAScript (ECMA-262)
The definition of 'Array' in that specification.
ECMAScript 1

浏览器兼容性

更新 GitHub 上的兼容性数据
Desktop Mobile Server
Chrome Edge Firefox Internet Explorer Opera Safari Android webview Chrome for Android Firefox for Android Opera for Android Safari on iOS Samsung Internet Node.js
Array Chrome 1 Edge 12 Firefox 1 IE 4 Opera 4 Safari 1 WebView Android ≤37 Chrome Android 18 Firefox Android 4 Opera Android 10.1 Safari iOS 1 Samsung Internet Android 1.0 nodejs 0.1.100
Array() 构造函数 Chrome 1 Edge 12 Firefox 1 IE 4 Opera 4 Safari 1 WebView Android ≤37 Chrome Android 18 Firefox Android 4 Opera Android 10.1 Safari iOS 1 Samsung Internet Android 1.0 nodejs 0.1.100
concat Chrome 1 Edge 12 Firefox 1 IE 5.5 Opera 4 Safari 1 WebView Android 1 Chrome Android 18 Firefox Android 4 Opera Android 10.1 Safari iOS 1 Samsung Internet Android 1.0 nodejs 0.1.100
copyWithin Chrome 45 Edge 12 Firefox 32 IE No Opera 32 Safari 9 WebView Android 45 Chrome Android 45 Firefox Android 32 Opera Android 32 Safari iOS 9 Samsung Internet Android 5.0 nodejs 4.0.0
entries Chrome 38 Edge 12 Firefox 28 IE No Opera 25 Safari 8 WebView Android 38 Chrome Android 38 Firefox Android 28 Opera Android 25 Safari iOS 8 Samsung Internet Android 3.0 nodejs 0.12
every Chrome 1 Edge 12 Firefox 1.5 IE 9 Opera 9.5 Safari 3 WebView Android ≤37 Chrome Android 18 Firefox Android 4 Opera Android 10.1 Safari iOS 1 Samsung Internet Android 1.0 nodejs 0.1.100
fill Chrome 45 Edge 12 Firefox 31 IE No Opera 32 Safari 8 WebView Android 45 Chrome Android 45 Firefox Android 31 Opera Android 32 Safari iOS 8 Samsung Internet Android 5.0 nodejs 4.0.0
4.0.0
0.12
Disabled
Disabled From version 0.12: this feature is behind the --harmony runtime flag.
filter Chrome 1 Edge 12 Firefox 1.5 IE 9 Opera 9.5 Safari 3 WebView Android ≤37 Chrome Android 18 Firefox Android 4 Opera Android 10.1 Safari iOS 1 Samsung Internet Android 1.0 nodejs 0.1.100
find Chrome 45 Edge 12 Firefox 25 IE No Opera 32 Safari 8 WebView Android 45 Chrome Android 45 Firefox Android 4 Opera Android 32 Safari iOS 8 Samsung Internet Android 5.0 nodejs 4.0.0
4.0.0
0.12
Disabled
Disabled From version 0.12: this feature is behind the --harmony runtime flag.
findIndex Chrome 45 Edge 12 Firefox 25 IE No Opera 32 Safari 8 WebView Android 45 Chrome Android 45 Firefox Android 4 Opera Android 32 Safari iOS 8 Samsung Internet Android 5.0 nodejs 4.0.0
4.0.0
0.12
Disabled
Disabled From version 0.12: this feature is behind the --harmony runtime flag.
flat Chrome 69 Edge 79 Firefox 62 IE No Opera 56 Safari 12 WebView Android 69 Chrome Android 69 Firefox Android 62 Opera Android 48 Safari iOS 12 Samsung Internet Android 10.0 nodejs 11.0.0
flatMap Chrome 69 Edge 79 Firefox 62 IE No Opera 56 Safari 12 WebView Android 69 Chrome Android 69 Firefox Android 62 Opera Android 48 Safari iOS 12 Samsung Internet Android 10.0 nodejs 11.0.0
forEach Chrome 1 Edge 12 Firefox 1.5 IE 9 Opera 9.5 Safari 3 WebView Android ≤37 Chrome Android 18 Firefox Android 4 Opera Android 10.1 Safari iOS 1 Samsung Internet Android 1.0 nodejs 0.1.100
from Chrome 45 Edge 12 Firefox 32 IE No Opera 32 Safari 9 WebView Android 45 Chrome Android 45 Firefox Android 32 Opera Android 32 Safari iOS 9 Samsung Internet Android 5.0 nodejs 4.0.0
includes Chrome 47 Edge 14 Firefox 43 IE No Opera 34 Safari 9 WebView Android 47 Chrome Android 47 Firefox Android 43 Opera Android 34 Safari iOS 9 Samsung Internet Android 5.0 nodejs 6.0.0
6.0.0
5.0.0
Disabled
Disabled From version 5.0.0: this feature is behind the --harmony runtime flag.
indexOf Chrome 1 Edge 12 Firefox 1.5 IE 9 Opera 9.5 Safari 3 WebView Android ≤37 Chrome Android 18 Firefox Android 4 Opera Android 10.1 Safari iOS 1 Samsung Internet Android 1.0 nodejs 0.1.100
isArray Chrome 5 Edge 12 Firefox 4 IE 9 Opera 10.5 Safari 5 WebView Android 1 Chrome Android 18 Firefox Android 4 Opera Android 14 Safari iOS 5 Samsung Internet Android 1.0 nodejs 0.1.100
join Chrome 1 Edge 12 Firefox 1 IE 5.5 Opera 4 Safari 1 WebView Android 1 Chrome Android 18 Firefox Android 4 Opera Android 10.1 Safari iOS 1 Samsung Internet Android 1.0 nodejs 0.1.100
keys Chrome 38 Edge 12 Firefox 28 IE No Opera 25 Safari 8 WebView Android 38 Chrome Android 38 Firefox Android 28 Opera Android 25 Safari iOS 8 Samsung Internet Android 3.0 nodejs 0.12
lastIndexOf Chrome 1 Edge 12 Firefox 1.5 IE 9 Opera 9.5 Safari 3 WebView Android ≤37 Chrome Android 18 Firefox Android 4 Opera Android 10.1 Safari iOS 1 Samsung Internet Android 1.0 nodejs 0.1.100
length Chrome 1 Edge 12 Firefox 1 IE 4 Opera 4 Safari 1 WebView Android ≤37 Chrome Android 18 Firefox Android 4 Opera Android 10.1 Safari iOS 1 Samsung Internet Android 1.0 nodejs 0.1.100
map Chrome 1 Edge 12 Firefox 1.5 IE 9 Opera 9.5 Safari 3 WebView Android ≤37 Chrome Android 18 Firefox Android 4 Opera Android 10.1 Safari iOS 1 Samsung Internet Android 1.0 nodejs 0.1.100
of Chrome 45 Edge 12 Firefox 25 IE No Opera 26 Safari 9 WebView Android 39 Chrome Android 39 Firefox Android 25 Opera Android 26 Safari iOS 9 Samsung Internet Android 4.0 nodejs 4.0.0
pop Chrome 1 Edge 12 Firefox 1 IE 5.5 Opera 4 Safari 1 WebView Android 1 Chrome Android 18 Firefox Android 4 Opera Android 10.1 Safari iOS 1 Samsung Internet Android 1.0 nodejs 0.1.100
push Chrome 1 Edge 12 Firefox 1 IE 5.5 Opera 4 Safari 1 WebView Android 1 Chrome Android 18 Firefox Android 4 Opera Android 10.1 Safari iOS 1 Samsung Internet Android 1.0 nodejs 0.1.100
reduce Chrome 3 Edge 12 Firefox 3 IE 9 Opera 10.5 Safari 5 WebView Android ≤37 Chrome Android 18 Firefox Android 4 Opera Android 14 Safari iOS 4 Samsung Internet Android 1.0 nodejs 0.1.100
reduceRight Chrome 3 Edge 12 Firefox 3 IE 9 Opera 10.5 Safari 5 WebView Android ≤37 Chrome Android 18 Firefox Android 4 Opera Android 14 Safari iOS 4 Samsung Internet Android 1.0 nodejs 0.1.100
reverse Chrome 1 Edge 12 Firefox 1 IE 5.5 Opera 4 Safari 1 WebView Android 1 Chrome Android 18 Firefox Android 4 Opera Android 10.1 Safari iOS 1 Samsung Internet Android 1.0 nodejs 0.1.100
shift Chrome 1 Edge 12 Firefox 1 IE 5.5 Opera 4 Safari 1 WebView Android 1 Chrome Android 18 Firefox Android 4 Opera Android 10.1 Safari iOS 1 Samsung Internet Android 1.0 nodejs 0.1.100
slice Chrome 1 Edge 12 Firefox 1 IE 4 Opera 4 Safari 1 WebView Android 1 Chrome Android 18 Firefox Android 4 Opera Android 10.1 Safari iOS 1 Samsung Internet Android 1.0 nodejs 0.1.100
some Chrome 1 Edge 12 Firefox 1.5 IE 9 Opera 9.5 Safari 3 WebView Android ≤37 Chrome Android 18 Firefox Android 4 Opera Android 10.1 Safari iOS 1 Samsung Internet Android 1.0 nodejs 0.1.100
sort Chrome 1 Edge 12 Firefox 1 IE 5.5 Opera 4 Safari 1 WebView Android 1 Chrome Android 18 Firefox Android 4 Opera Android 10.1 Safari iOS 1 Samsung Internet Android 1.0 nodejs 0.1.100
splice Chrome 1 Edge 12 Firefox 1 IE 5.5
5.5
From Internet Explorer 5.5 through 8, all elements of the array will not be deleted if deleteCount is omitted. This behavior was fixed in Internet Explorer 9.
Opera 4 Safari 1 WebView Android 1 Chrome Android 18 Firefox Android 4 Opera Android 10.1 Safari iOS 1 Samsung Internet Android 1.0 nodejs 0.1.100
toLocaleString Chrome 1 Edge 12 Firefox 1 IE 5.5 Opera 4 Safari 1 WebView Android ≤37 Chrome Android 18 Firefox Android 4 Opera Android 10.1 Safari iOS 1 Samsung Internet Android 1.0 nodejs 0.1.100
toSource
非标
Chrome No Edge No Firefox 1 — 74
不支持 1 — 74
Starting in Firefox 74, toSource() is no longer available for use by web content. It is still allowed for internal and privileged code.
IE No Opera No Safari No WebView Android No Chrome Android No Firefox Android 4 Opera Android No Safari iOS No Samsung Internet Android No nodejs No
toString Chrome 1 Edge 12 Firefox 1 IE 4 Opera 4 Safari 1 WebView Android ≤37 Chrome Android 18 Firefox Android 4 Opera Android 10.1 Safari iOS 1 Samsung Internet Android 1.0 nodejs 0.1.100
unshift Chrome 1 Edge 12 Firefox 1 IE 5.5 Opera 4 Safari 1 WebView Android 1 Chrome Android 18 Firefox Android 4 Opera Android 10.1 Safari iOS 1 Samsung Internet Android 1.0 nodejs 0.1.100
values Chrome 66 Edge 12 Firefox 60 IE No Opera 53 Safari 9 WebView Android 66 Chrome Android 66 Firefox Android 60 Opera Android 47 Safari iOS 9 Samsung Internet Android 9.0 nodejs 10.9.0
10.9.0
6.5.0
Disabled
--harmony-array-prototype-values flag is required; the --harmony flag is not sufficient in this case.
Disabled From version 6.5.0: this feature is behind the --harmony-array-prototype-values runtime flag.
不支持 0.12 — 4.0.0
@@iterator Chrome 38 Edge 12 Firefox 36
36
不支持 27 — 36
Alternate Name
A placeholder property named @@iterator 被使用。
Alternate Name Uses the non-standard name: @@iterator
不支持 17 — 27
Alternate Name
A placeholder property named iterator 被使用。
Alternate Name Uses the non-standard name: iterator
IE No Opera 25 Safari 10 WebView Android 38 Chrome Android 38 Firefox Android 36
36
不支持 27 — 36
Alternate Name
A placeholder property named @@iterator 被使用。
Alternate Name Uses the non-standard name: @@iterator
不支持 17 — 27
Alternate Name
A placeholder property named iterator 被使用。
Alternate Name Uses the non-standard name: iterator
Opera Android 25 Safari iOS 10 Samsung Internet Android 3.0 nodejs 0.12
@@species Chrome 51 Edge 79 Firefox 48 IE No Opera 38 Safari 10 WebView Android 51 Chrome Android 51 Firefox Android 48 Opera Android 41 Safari iOS 10 Samsung Internet Android 5.0 nodejs 6.5.0
6.5.0
6.0.0
Disabled
Disabled From version 6.0.0: this feature is behind the --harmony runtime flag.
@@unscopables Chrome 38 Edge 12 Firefox 48 IE No Opera 25 Safari 10 WebView Android 38 Chrome Android 38 Firefox Android 48 Opera Android 25 Safari iOS 10 Samsung Internet Android 3.0 nodejs 0.12

图例

完整支持
完整支持
不支持
不支持
非标。预期跨浏览器支持较差。
非标。预期跨浏览器支持较差。
见实现注意事项。
用户必须明确启用此特征。
用户必须明确启用此特征。
使用非标名称。

另请参阅

Metadata

  1. 标准内置对象
  2. Array
  3. 特性
    1. Array.prototype.length
    2. Array.prototype[@@unscopables]
  4. 方法
    1. Array.from()
    2. Array.isArray()
    3. Array.of()
    4. Array.prototype.concat()
    5. Array.prototype.copyWithin()
    6. Array.prototype.entries()
    7. Array.prototype.every()
    8. Array.prototype.fill()
    9. Array.prototype.filter()
    10. Array.prototype.find()
    11. Array.prototype.findIndex()
    12. Array.prototype.flat()
    13. Array.prototype.flatMap()
    14. Array.prototype.forEach()
    15. Array.prototype.includes()
    16. Array.prototype.indexOf()
    17. Array.prototype.join()
    18. Array.prototype.keys()
    19. Array.prototype.lastIndexOf()
    20. Array.prototype.map()
    21. Array.prototype.pop()
    22. Array.prototype.push()
    23. Array.prototype.reduce()
    24. Array.prototype.reduceRight()
    25. Array.prototype.reverse()
    26. Array.prototype.shift()
    27. Array.prototype.slice()
    28. Array.prototype.some()
    29. Array.prototype.sort()
    30. Array.prototype.splice()
    31. Array.prototype.toLocaleString()
    32. Array.prototype.toSource()
    33. Array.prototype.toString()
    34. Array.prototype.unshift()
    35. Array.prototype.values()
    36. Array.prototype[@@iterator]()
    37. get Array[@@species]
  5. 继承:
  6. Function
  7. 特性
    1. Function.arguments
    2. Function.caller
    3. Function.displayName
    4. Function.length
    5. Function.name
  8. 方法
    1. Function.prototype.apply()
    2. Function.prototype.bind()
    3. Function.prototype.call()
    4. Function.prototype.toSource()
    5. Function.prototype.toString()
  9. Object
  10. 特性
    1. Object.prototype.__proto__
    2. Object.prototype.constructor
  11. 方法
    1. Object.prototype.__defineGetter__()
    2. Object.prototype.__defineSetter__()
    3. Object.prototype.__lookupGetter__()
    4. Object.prototype.__lookupSetter__()
    5. Object.prototype.hasOwnProperty()
    6. Object.prototype.isPrototypeOf()
    7. Object.prototype.propertyIsEnumerable()
    8. Object.prototype.toLocaleString()
    9. Object.prototype.toSource()
    10. Object.prototype.toString()
    11. Object.prototype.valueOf()
    12. Object.setPrototypeOf()