Skip to content

Commit 5075536

Browse files
committed
docs(stdlib): edit array
1 parent 65d72c0 commit 5075536

File tree

1 file changed

+8
-6
lines changed

1 file changed

+8
-6
lines changed

docs/stdlib/array.md

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,17 +10,19 @@ arr.length // 2
1010
arr // [ empty x 2 ]
1111
```
1212

13-
上面代码中,`Array`构造函数的参数`2`,表示生成一个两个成员的数组,每个位置都是空值。
13+
上面代码中,`Array()`构造函数的参数`2`,表示生成一个两个成员的数组,每个位置都是空值。
1414

15-
如果没有使用`new`,运行结果也是一样的。
15+
如果没有使用`new`关键字,运行结果也是一样的。
1616

1717
```javascript
1818
var arr = new Array(2);
1919
// 等同于
2020
var arr = Array(2);
2121
```
2222

23-
`Array`构造函数有一个很大的缺陷,就是不同的参数,会导致它的行为不一致。
23+
考虑到语义性,以及与其他构造函数用户保持一致,建议总是加上`new`
24+
25+
`Array()`构造函数有一个很大的缺陷,不同的参数会导致行为不一致。
2426

2527
```javascript
2628
// 无参数时,返回一个空数组
@@ -44,7 +46,7 @@ new Array(1, 2) // [1, 2]
4446
new Array('a', 'b', 'c') // ['a', 'b', 'c']
4547
```
4648

47-
可以看到,`Array`作为构造函数,行为很不一致。因此,不建议使用它生成新数组,直接使用数组字面量是更好的做法。
49+
可以看到,`Array()`作为构造函数,行为很不一致。因此,不建议使用它生成新数组,直接使用数组字面量是更好的做法。
4850

4951
```javascript
5052
// bad
@@ -54,7 +56,7 @@ var arr = new Array(1, 2);
5456
var arr = [1, 2];
5557
```
5658

57-
注意,如果参数是一个正整数,返回数组的成员都是空位。虽然读取的时候返回`undefined`,但实际上该位置没有任何值。虽然可以取到`length`属性,但是取不到键名。
59+
注意,如果参数是一个正整数,返回数组的成员都是空位。虽然读取的时候返回`undefined`,但实际上该位置没有任何值。虽然这时可以读取到`length`属性,但是取不到键名。
5860

5961
```javascript
6062
var a = new Array(3);
@@ -70,7 +72,7 @@ b[0] // undefined
7072
0 in b // true
7173
```
7274

73-
上面代码中,`a`是一个长度为3的空数组`b`是一个三个成员都是`undefined`的数组。读取键值的时候,`a``b`都返回`undefined`,但是`a`的键位都是空的`b`的键位是有值的
75+
上面代码中,`a``Array()`生成的一个长度为3的空数组`b`是一个三个成员都是`undefined`的数组,这两个数组是不一样的。读取键值的时候,`a``b`都返回`undefined`,但是`a`的键名(成员的序号)都是空的`b`的键名是有值的
7476

7577
## 静态方法
7678

0 commit comments

Comments
 (0)