写在前面的话

看了资料,才发现之前面试回答的有多扯...

落后挨打,没毛病啊

(一) 箭头函数的this指向规则

1、箭头函数没有prototype(原型),所以箭头函数本身没有this

let a = () =>{};

console.log(a.prototype); // undefined

2、箭头函数的this指向在定义的时候继承自外层第一个普通函数的this。

3、不能直接修改箭头函数的this指向

call显示绑定this指向失败了,包括aaply、bind都一样。

去修改被继承的普通函数的this指向,然后箭头函数的this指向也会跟着改变

4、严格模式和非严格模式下它的this都会指向window(全局对象)

5、箭头函数的this指向全局,使用arguments会报未声明的错误

6、rest参数获取函数的多余    参数

这是ES6的API,用于获取函数不定数量的参数数组,这个API是用来替代arguments的,API用法如下:

let a = (first, ...abc) => {

console.log(first, abc); // 1 [2, 3, 4]

};

a(1, 2, 3, 4);

7、使用new调用箭头函数会报错

(二)注意事项

1、一条语句返回对象字面量,需要加括号,或者直接写成多条语句的return形式,否则像func中演示的一样,花括号会被解析为多条语句的花括号,不能正确解析

var func1 = () => { foo: 1 }; // 想返回一个对象,花括号被当成多条语句来解析,执行后返回undefined

var func2 = () => ({foo: 1}); // 用圆括号是正确的写法

var func2 = () => {

return {

foo: 1 // 更推荐直接当成多条语句的形式来写,可读性高

};

};

2、箭头函数在参数和箭头之间不能换行!

3、箭头函数的解析顺序相对靠前

不适用场景:箭头函数的this意外指向和代码的可读性。

参考链接:

https://www.cnblogs.com/biubiuxixiya/p/8610594.html

https://blog.csdn.net/m0_37686205/article/details/88776259

Day 59/100 箭头函数和普通函数的区别相关推荐

  1. C语言调用es6,ES6 箭头函数、普通函数、调用方法

    importReact,{Component} from'react';import{ Platform,StyleSheet,Text,Image,View,TouchableOpacity,Toa ...

  2. js箭头函数和普通函数区别

    js箭头函数和普通函数区别 实验环境:nodejs v12.16.1 箭头函数不能作为构造函数,而普通函数可以 箭头函数没有原型,而普通函数有 箭头函数return可以省略语句块.(如果=>右边 ...

  3. 箭头函数和普通函数有什么区别?

    箭头函数和普通函数有什么区别? 1:写法不一样 2:普通函数存在变量提升的现象 3:箭头函数不能作为构造函数使用 4:两者this的指向不同 5:箭头函数的arguments指向它的父级函数所在作用域 ...

  4. 箭头函数与普通函数,以及使用场景

    链接 箭头函数和普通函数的区别如下. 普通函数:根据调用我的人(谁调用我,我的this就指向谁) 箭头函数:根据所在的环境(我再哪个环境中,this就指向谁) 一针见血式总结: 普通函数中的this: ...

  5. C语言基础课 编写程序之1.编写一个判断素数的函数,并利用该函数输出100~200的所有素数2.编写一个函数fun(),函数功能是:判断一个整数是否既是5又是7的整倍数,若是,输出yes,不是,输出n

    1.编写一个判断素数的函数,并利用该函数输出100~200的所有素数 #include<stdio.h> #include<math.h> int fun(int n) {in ...

  6. es6箭头函数_【知识点】ES6箭头函数、箭头函数与普通函数的区别

    作者:長安曹公子 文章出处:ES6 - 箭头函数.箭头函数与普通函数的区别 一.基本语法 ES6中允许使用箭头=>来定义箭头函数,具体语法,我们来看一个简单的例子: // 箭头函数 let fu ...

  7. Cathy Zhang 箭头函数与普通函数的区别

    1.外形不同:箭头函数使用箭头定义,普通函数中没有 // 普通函数 function func(){console.log('普通函数可以作为具名函数,也可以是匿名函数'); }// 箭头函数 let ...

  8. 2022年了,你还没搞清楚箭头函数与普通函数的区别嘛?

    目录 1.箭头函数简介 2.箭头函数与普通函数的区别 A.声明方式不同,匿名函数 B.this指向不同 C.箭头函数的this永远不会变,call.apply.bind也无法改变 D.箭头函数没有原型 ...

  9. C语言编程>第二十三周 ⑤ 请补充main函数,该函数的功能是:求1~100(不包括100)以内所有素数的平均值。

    例题:请补充main函数,该函数的功能是:求1-100(不包括100)以内所有素数的平均值. 仅在横线上填写所需的若干表达式或语句,请勿改动函数中的其它任何内容. 代码如下: #include< ...

最新文章

  1. 入门指南目录页 -PaddlePaddle 飞桨 入门指南 FAQ合集-深度学习问题
  2. .NET 中的对象序列化 (转载)
  3. Nginx重启时丢失nginx.pid文件解决方法nginx: [emerg] open() “/var/run/nginx/nginx.pid“ failed (2: No such fi
  4. eclipse中检查项目生成.class文件的地址
  5. fastreport 打印两个list_Smaller And Smarter Python数据结构:合并两个有序链表
  6. 怎么把两个div一左一右放
  7. Weblogic调试延长时间
  8. 图解 MySQL 索引,写得实在太好了!
  9. 工程伦理期末考试答案(学堂云雨课堂)
  10. 2021年危险化学品经营单位主要负责人考试报名及危险化学品经营单位主要负责人新版试题
  11. 网络营销-渠道、公关
  12. 不知道读什么?5种方法教你打造私房书单!
  13. 机器学习之手写数字图片数据处理及识别
  14. 阿里云服务器ECS与传统服务器有哪些区别?
  15. Objective-C runtime机制(5)——iOS 内存管理
  16. 【小蜜蜂蓝桥杯笔记】DS18B20温度传感器的使用
  17. 详解redis5.x版本
  18. STM32F411RE项目开发-3-定时器的使用
  19. 【PHP MySQL】数据库专题 第九课 自连接
  20. C语言如何获得精确到毫秒的时间

热门文章

  1. 不只测心率,通过AI可以测大学生压力水平
  2. 艺卓CG2700X / S显示器评测
  3. 【好奇心驱动力】ESP32-CAM定时拍照存储到SD卡
  4. 大话Hadoop1.0、Hadoop2.0与Yarn平台
  5. 《天空英雄》SKYHERO剧情简介
  6. 关注职业发展,也要关注健康 别让老板杀了你
  7. Java反射(超详细!)
  8. 计算机网络的主要概念和功能,计算机网络的概念和基本功能是什么?
  9. HihoCoder 1634 Puzzle Game
  10. 凯撒加密Caesar cipher与古典密码