1.splice( start , deleteCoun t, value,… ),这个方法有三个参数,分别代表:
start:开始插入和(或)删除的数组元素的下标。
delectCount:从start开始,包括start所指的元素在内要删除的元素个数。这个参数是可选的,如果没有指定它,splice()将删除从start开始到原数组结尾的所有元素。
value , … :要插人数组的零个或多个值,从start所指的下标处开始插入。
splice(2,1 )表示删除一个数组下标为2的内容
2.for each可以遍历,三个参数(item,index,arr)
如果要改变数组,通过item和index,arr改变
3.#fn() 和 fn 的区别【重要】
fn():调用函数。调用之后,还获取了函数的返回值。
fn:函数对象。相当于直接获取了整个函数对象。
4.arguments 的使用
当我们不确定有多少个参数传递的时候,可以用 arguments 来获取。在 JavaScript 中,arguments 实际上是当前函数的一个内置对象。所有函数都内置了一个 arguments 对象(只有函数才有 arguments 对象),arguments 对象中存储了传递的所有实参.
arguments的展示形式是一个伪数组。伪数组具有以下特点:
可以进行遍历;具有数组的 length 属性。
按索引方式存储数据。
不具有数组的 push()、pop() 等方法。
5.函数内 this 的指向【非常重要】
我们在《JavaScript 基础/函数.md》这篇文章讲过,函数的调用有六种形式。
根据函数的调用方式的不同,this 会指向不同的对象:
1.以函数的形式(包括普通函数、定时器函数、立即执行函数)调用时,this 的指向永远都是 window。比如fun();相当于window.fun();
2.以方法的形式调用时,this 指向调用方法的那个对象
3.以构造函数的形式调用时,this 指向实例对象
4.以事件绑定函数的形式调用时,this 指向绑定事件的对象
5.使用 call 和 apply 调用时,this 指向指定的那个对象
call() 方法的作用
call() 方法的作用:可以调用一个函数,与此同时,它还可以改变这个函数内部的 this 指向。
call() 方法的另一个应用:可以实现继承。之所以能实现继承,其实是利用了上面的作用。
apply 传入数组
var obj1 = {
nickName: ‘qianguyihao’,
age: 28,
};
function fn1(a) {
console.log(this);
console.log(this.nickName);
console.log(a);
}
fn1.apply(obj1, [‘hello’]); // 先将 this 指向 obj1,然后执行 fn1() 函数
const maxValue = Math.max.apply(Math, arr1); // 求数组 arr1 中元素的最大值
bind() 方法
不会调用函数,但是可以改变函数内部的 this 指向。
<