update:伪数组arguments
This commit is contained in:
@@ -184,23 +184,14 @@ array = Array.from(arrayLike)
|
||||
|
||||
## 其他
|
||||
|
||||
### instanceof:判断是否为数组
|
||||
|
||||
```javascript
|
||||
布尔类型值 = A instanceof B;
|
||||
```
|
||||
|
||||
解释:判断A是否为B类型(instanceof 是一个关键字)。
|
||||
|
||||
在数组里,这种方法已经用的不多了,因为有下面这种方法。
|
||||
|
||||
### isArray():判断是否为数组
|
||||
|
||||
```javascript
|
||||
布尔类型值 = Array.isArray(被检测的值) ;
|
||||
布尔值 = Array.isArray(被检测的值) ;
|
||||
```
|
||||
|
||||
PS:属于HTML5中新增的方法。
|
||||
以前,我们会通过 `A instanceof B`来判断 A 是否属于 B 类型。但是在数组里,这种 instanceof 方法已经用的不多了,因为有下面isArray()方法。
|
||||
|
||||
|
||||
### toString():转换数组
|
||||
|
||||
@@ -218,50 +209,6 @@ PS:属于HTML5中新增的方法。
|
||||
|
||||
这个方法的意义不大。因为我们指直接写数组对象的名字,就已经是数组本身了。
|
||||
|
||||
## 伪数组:arguments
|
||||
|
||||
arguments代表的是实参。有个讲究的地方是:arguments**只在函数中使用**。
|
||||
|
||||
(1)返回函数**实参**的个数:arguments.length
|
||||
|
||||
举例:
|
||||
|
||||
```javascript
|
||||
fn(2,4);
|
||||
fn(2,4,6);
|
||||
fn(2,4,6,8);
|
||||
|
||||
function fn(a,b) {
|
||||
console.log(arguments);
|
||||
console.log(fn.length); //获取形参的个数
|
||||
console.log(arguments.length); //获取实参的个数
|
||||
|
||||
console.log("----------------");
|
||||
}
|
||||
```
|
||||
|
||||
打印结果:
|
||||
|
||||

|
||||
|
||||
(2)返回正在执行的函数:arguments.callee
|
||||
|
||||
在使用函数**递归**调用时,推荐使用arguments.callee代替函数名本身。
|
||||
|
||||
(3)之所以说arguments是伪数组,是因为:**arguments可以修改元素,但不能改变数组的长短**。举例:
|
||||
|
||||
```javascript
|
||||
fn(2,4);
|
||||
fn(2,4,6);
|
||||
fn(2,4,6,8);
|
||||
|
||||
function fn(a,b) {
|
||||
arguments[0] = 99; //将实参的第一个数改为99
|
||||
arguments.push(8); //此方法不通过,因为无法增加元素
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
|
||||
## 清空数组
|
||||
|
||||
@@ -382,7 +329,7 @@ arguments代表的是实参。有个讲究的地方是:arguments**只在函数
|
||||
|
||||
略难,答案暂略。
|
||||
|
||||
### 练习5
|
||||
### 练习5:数组去重
|
||||
|
||||
问题:编写一个方法去掉一个数组中的重复元素。
|
||||
|
||||
|
||||
Reference in New Issue
Block a user