ES6面试题——箭头函数和普通函数有什么区别

1. this指向问题

<script>
let obj = {a: function () {console.log(this); // 打印出:{a: ƒ, b: ƒ}},b: () => {console.log(this); // 打印出Window {window: Window, self: Window,...}},
};
obj.a();
obj.b();
</script>

箭头函数中的this是在箭头函数定义时就决定的,而且是不可修改的(call,apply,bind)

箭头函数的this指向定义的时候,外层第一个普通函数的this

<script>
let obj = {run: function(){return () => {console.log( this ); // 打印出:{run: ƒ}}}
}
obj.run()();
</script>

2. 箭头函数不能new(也就是不能当作构造函数)

<script>
let run = ()=>{return 1111
}
console.log( new run() ); // 会报错:run is not a constructor
</script>

3. 箭头函数没有prototype(原型对象)

<script>
let run = ()=>{return 1111
}
console.log( run.prototype ); // 打印出:undefined
</script>

4. 箭头函数没有arguments

/* 箭头函数没有arguments */
<script>
let run = ()=>{console.log( arguments );  // 会报错arguments is not defined
}
run();
</script>/* 普通函数是一定有arguments的 */
<script>
let run = function (){console.log( arguments );  // 打印出:Arguments [callee: ƒ, Symbol(Symbol.iterator): ƒ]
}
run();
</script>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/38297.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

成都市水资源公报(2000-2022年)

数据年限&#xff1a;2000-2022年&#xff0c;无2009年 数据格式&#xff1a;pdf、word、jpg 数据内容&#xff1a;降水量、地表水资源量、地下水资源量、水资源总量、蓄水状况、平原区浅层地下水动态、水资源情况分析、供水量、用水量、污水处理、洪涝干旱等

类似李跳跳的软件有什么,强烈推荐所有安卓手机安装!!!

今天阿星分享一款让安卓手机更顺滑的神器——智慧岛。你问我李跳跳&#xff1f;由于大家都知道的原因&#xff0c;那是个曾经让广告无处遁形的神兵利器&#xff0c;可惜现在它已经退休了。不过别担心&#xff0c;智慧岛接过了接力棒&#xff0c;继续为我们的安卓体验保驾护航。…

Raccon:更好防侧信道攻击的后量子签名方案

1. 引言 安全社区已经开发出了一些出色的加密算法&#xff0c;这些算法非常安全&#xff0c;但最终&#xff0c;所有的数据都会被存储在硅和金属中&#xff0c;而入侵者越来越多地会在那里放置监视器来破解密钥。 破解加密密钥通常涉及暴力破解方法或利用实施过程中的缺陷。然…

2029年AI服务器出货量将突破450万台,AI推理服务器即将爆发式增长

在2020年&#xff0c;新冠疫情与远程办公模式的兴起推动了所有类型服务器的出货量达到峰值&#xff0c;随后几年里&#xff0c;除了AI服务器之外的所有类别都回归到了正常水平。 根据Omdia的研究数据&#xff0c;AI服务器的出货量在2020年急剧上升&#xff0c;并且至今未显示出…

浏览器中如何获取用户网络状态

网页开发中存在需要获取用户是否在线的场景及用户网络状态&#xff0c;浏览器提了navigator.onLine和navigator.connection可以实现这一需求。 获取在线状态 if (navigator.onLine) {console.log("online"); } else {console.log("offline"); }监听网络状…

日志的介绍

知识铺垫&#xff1a;在我们日常开发中&#xff0c;其实日志是和我们息息相关的。但可能平常都没怎么注意到日志相关的知识点&#xff0c;也不怎么关注日志&#xff0c;然后&#xff0c;在生产环境中&#xff0c;日志是必不可少的存在&#xff0c;项目出现问题了都是通过日志来…

cesium 添加 Echarts 图层(空气质量点图)

cesium 添加 Echarts 图层(下面附有源码) 1、实现思路 1、在scene上面新增一个canvas画布 2、通坐标转换,将经纬度坐标转为屏幕坐标来实现 3、将ecarts 中每个series数组中元素都加 coordinateSystem: ‘cesiumEcharts’ 2、示例代码 <!DOCTYPE html> <html lan…

Excel 数据筛选难题解决

人不走空 &#x1f308;个人主页&#xff1a;人不走空 &#x1f496;系列专栏&#xff1a;算法专题 ⏰诗词歌赋&#xff1a;斯是陋室&#xff0c;惟吾德馨 目录 &#x1f308;个人主页&#xff1a;人不走空 &#x1f496;系列专栏&#xff1a;算法专题 ⏰诗词歌…

缓存穿透、雪崩与击穿

缓存穿透、雪崩、击穿 1、缓存穿透强调都没有数据并发访问布隆过滤器缓存NULL值 2、缓存雪崩强调批量Key过期并发访问 3、缓存击穿强调单个Key过期并发访问互斥锁逻辑过期 分布式并发控制 1、缓存穿透 缓存穿透是指数据库和缓存都没有的数据&#xff0c;这样缓存永远不会生效&…

图形化用户界面-java头歌实训

图形化用户界面 import java.awt.*; import javax.swing.*; public class GraphicsTester extends JFrame { public GraphicsTester() { super("Graphics Demo"); setSize(480, 300); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public void paint…

服务器raid5坏盘-换盘-修复阵列过程

目录 背景原因分析解决步骤名词解释进入raid管理界面换回旧4号&#xff0c;进行import再次更换4号盘 总结 背景 服务器除尘之后文件服务器部分文件不能访问了,部分文件夹内容为空&#xff0c;起初以为是新配置的权限的问题&#xff0c;排查之后发现不仅仅是权限问题 jumpserv…

ISA95-标准2-数据字典部分的解析与设计指南

在 MES/MOM 系统中,ISA-95 第二部分的数据字典扮演着至关重要的角色,它确保了数据的一致性和准确性,为不同系统间的数据交换提供了标准化的术语和定义。以下是 MES/MOM 系统实现 ISA-95 第二部分数据字典的具体概念、功能模块以及应用场景: 一、概念、功能模块以及应用场景…

numpy - array(4)

arr1 np.array([[1, 2], [3, 4], [5, 6]]) &#xff08;1&#xff09;def insert(arr, obj, values, axisNone) 向array指定位置插入指定值 axis为默认值None时&#xff0c;如果array是多维数据,则先将array转化成向量obj&#xff1a;插入的索引&#xff0c;接受int或者多…

VTK学习日志:基于VTK9.3.0+Visual Studio c++实现DICOM影像MPR多平面重建+V R体绘制4个视图展示功能的实现(二)

前段时间对VTK9.3.0进行了编译&#xff0c;开发了MPRVR实现的demo,显示效果不是很理想&#xff0c;正好趁着周末有时间&#xff0c;再度对之前的程序进行优化和完善&#xff0c;先展示下效果&#xff1a; VTK实现MPRVR四视图 再次讲解下基于VTK的MPRVR实现的简单项目创建过程&a…

linux守护进程生命周期管理-supervisord

简介 supervisor是一个client/server系统,允许用户控制多个类unix系统的进程,摆脱rc.d脚本的不方便性.supervisor具有简单,集中化管理,搞笑,可扩展性,高兼容. 整套软件包含:supervisord(守护进程),supervisorctl(命令行工具),web server(一个web交互界面),XML-RPC 交互 安装 …

git回退commit的方式

在Git中&#xff0c;回退commit&#xff08;即撤销之前的提交&#xff09;可以通过多种方式来实现。以下是一些常见的方法&#xff0c;以及它们的详细步骤和注意事项&#xff1a; ### 1. 使用git revert命令 git revert命令用于撤销某次commit&#xff0c;但它并不会删除该comm…

FFmpeg 硬件编码加速文档介绍

介绍 硬件访问:许多平台提供了对专用硬件的访问,这些硬件可以用于执行解码、编码或过滤等视频相关操作。 性能与资源使用:使用硬件可以加快某些操作的速度或减少其他资源(特别是CPU)的使用,但可能会产生不同的结果或质量较低,或带来在使用纯软件时不存在的额外限制。 硬…

公爹公婆出首付买房,离婚的儿媳妇能分吗?

小两口结婚后为了更好地生活打算购房&#xff0c;男方父母帮助支付首付款&#xff0c;后房屋登记在夫妻名下。后两人因感情不和打算离婚&#xff0c;女方要求按照房屋的现行价值进行分割&#xff0c;能否得到支持&#xff1f;近日&#xff0c;江苏省南通市中级人民法院对这起离…

【Postman学习】

Postman是一个非常流行的API开发和测试工具&#xff0c;广泛用于Web服务的开发、测试和调试。它提供了一个图形界面&#xff0c;允许用户轻松地构建、发送和管理HTTP(S)请求&#xff0c;同时查看和分析响应。下面是对Postman接口测试工具的详细解释&#xff1a; 1. Postman简介…

Linux安装Node-RED并实现后台运行及开机启动

首先确保系统中已近成功安装Node.js&#xff0c;并保证需要的合适版本&#xff1a; 关于node.js的安装可以参考我的另一篇博文:《AliyunOS安装Node.js》。 然后就可以使用npm工具安装Node-RED了&#xff0c;很简单使用如下命令&#xff1a; sudo npm install -g --unsafe-per…