箭头函数与普通函数区别

在ES5中,如果想要知道this指向谁,就要看当前的这个函数是在哪里调用的,函数的 this 关键字在 JavaScript 中的表现略有不同,此外,在严格模式和非严格模式之间也会有一些差别。

js中的this指


在事件中调用,this就是当前触发事件的元素
在对象中调用,this就是当前对象
在全局调用,this就是window

在面向对象中,this就是当前用`new`关键字创建出来的对象

箭头函数中的this指向

在普通函数中的this:

1. this总是代表它的直接调用者(js的this是执行上下文), 例如 obj.func ,那么func中的this就是obj

2.在默认情况(非严格模式下,未使用 'use strict'),没找到直接调用者,则this指的是 window (约定俗成)

3.在严格模式下,没有直接调用者的函数中的this是 undefined

4.使用call,apply,bind(ES5新增)绑定的,this指的是 绑定的对象

箭头函数与普通函数区别

1.箭头函数是匿名函数,箭头函数不能作为构造函数使用 ,不能使用new 方法
2.箭头函数的this,始终指向父级上下文
3.箭头函数没有原型属性
4.箭头函数没有Arguments
5.箭头函数不能使用call apply bind 直接修改它的this指向 但可以用他们传参

普通函数的arguments和类数组转换成数组

arguments转换成数字的方法

1.比较常用的方法

function argument() {
     var arr = [];
    for (var i = 0; i < arguments.length; i++) {
        arr.push(arguments[i]);
    }
    return arr;
}

2.Array.prototype.slice.call()

function arguments() {
    console.log(arguments instanceof Array); // false 
    var argsArray = Array.prototype.slice.call(arguments);
    console.log(argsArray instanceof Array); // true 
}

3.扩展运算符,因为它是一个对象

function argument () {
    console.log(arguments instanceof Array); // false 
    var argsArray = [...arguments ];
    console.log(argsArray instanceof Array); // true 
}

4.Array.from(); ES6里的方法

function argument () {
    console.log(arguments instanceof Array); // false 
    var argsArray = Array.from(arguments);
    console.log(argsArray instanceof Array); // true 
}

类数组转换成数组的方法

1.ES6语法 Array.from(arr)

2.用Array.prototype.slice.call(elems)方法转化为数组 或 [].slice.call(elems)

3.用[ ...elems ]方法转化为数组

4.用Array.prototype.forEach.call(elem,callback)方法

5.用Array.prototype.forEach.apply(elem,[callback])方法

6.用bind方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值