JS基础知识(二十八):箭头函数

2023-10-29

1、箭头函数的使用

箭头函数有两种格式, 一种只包含一个表达式,没有{…} 和 return
一种包含多条语句, 这个时候{} return 就不能省略

箭头函数类型 代码
没有参数 () => 100 function(){ return 10}
一个参数 x => x+1 function(x){ return x + 1}
多个参数 (x, y) => x + y function(x, y) { return x + y}
可变参数 (x, y, …rest) =>{ var i,sum = x+y; return sum; }
一个表达式 x => x+1
多个表达式 x => { if (x>0){ return x*x }else{ return x } }
返回一个对象 x => ({foo:x})

2、箭头函数的this

箭头函数中的this是词法作用域, 由上下文确定

词法作用域就是定义在词法阶段的作用域,无论函数在哪里被调用,也无论它如何被调用,它的词法作用域都只由函数被声明时所处的位置决定

[注意]词法作用域查找只会查找一级标识符,如果代码引用了foo.bar.baz,词法作用域查找只会试图查找foo标识符,找到这个变量后,对象属性访问规则分别接管对bar和baz属性的访问

作用域查找从运行时所处的最内部作用域开始,逐级向外或者说向上进行,直到遇见第一个匹配的标识符为止

在多层的嵌套作用域中可以定义同名的标识符,这叫作“遮蔽效应”,内部的标识符“遮蔽”了外部的标识符

全局变量会自动为全局对象的属性,因此可以不直接通过全局对象的词法名称,而是间接地通过对全局对象属性的引用来对其进行访问。过这种技术可以访问那些被同名变量所遮蔽的全局变量。但非全局的变量如果被遮蔽了,无论如何都无法被访问到

参考博客:https://www.cnblogs.com/xiaohuochai/p/5700095.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JS基础知识(二十八):箭头函数 的相关文章

  • socket.io 的良好初学者教程? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何修改每个JSON对象javascript

    我想修改里面的每个 JSON 值cooldown object cooldown user 1 This user2 0 This 在 Javascript 中使用 for 语句 我研究了好几个小时 只找到了内部的 blocks Edit
  • 如何格式化 Highcharts 的 (x,y) 对数据的日期时间

    我的序列化方法会产生如下所示的日期时间字符串 2014 07 09T12 30 41Z 为什么下面的代码不起作用 function container highcharts xAxis type datetime series data x
  • 摩卡 - Chai Karma“套件未定义”

    我对 jscript tdd 很陌生 遇到了问题 希望有人能告诉我我在做什么 在浏览器中运行测试 通过 HTML 文件 一切正常 通过节点和业力运行它们我得到以下异常 我想在 node js 主机的 karma 中使用 Mocha 和 Ch
  • 如何针对 Node.js 中发生的每个错误发送电子邮件?

    假设我的 node js 应用程序正在运行 如果出现错误 我的意思是所有错误 不仅仅是网络错误 如果出现错误 则很重要 我如何调用函数向我发送电子邮件 基本上 在我希望它写入 err out 之前 我希望向我发送一封电子邮件 我正在使用no
  • Snap.svg - 停止在可悬停元素的子元素上重新触发悬停事件

    对于一个项目 我使用的 SVG 形状由背景多边形和背景多边形上方的一些文本 我已将其转换为路径 组成 我正在使用 Snap svg 为我的形状设置动画 当我将鼠标悬停在多边形上时 形状应该缩放到特定尺寸 包括其中的所有内容 鼠标移开时 形状
  • Bootstrap按钮加载+Ajax

    我正在使用 Twitter Bootstrap 的按钮加载状态 http twitter github com bootstrap javascript html buttons http twitter github com bootst
  • 有没有办法使用 Rspec/Capybara/Selenium 将 javascript console.errors 打印到终端?

    当我运行 rspec 时 是否可以让 capybara selenium 向 rspec 报告任何 javascript console errors 和其他异常 我有一大堆测试失败 但当我手动测试它时 我的应用程序正在运行 如果不知道仅在
  • 设置 cookie 时中断 JavaScript 执行

    当设置 cookie 时 是否可以始终中断浏览器开发人员工具中的 javascript 执行 无需显式设置 JS 断点 document cookie 在 html head 块的开头添加此代码片段效果很好
  • 尝试将数据存储在点击器网站中

    我正在尝试存储一个名为的变量score无论何时刷新 您都会一次又一次地使用它 我不明白的是它的代码是什么 我尝试了一些方法 但似乎都不起作用 这是我的答题器网站 但是当我尝试使用 JavaScript 来存储它时 它不起作用window o
  • 使用 CSS 或 Javascript 填充动画

    我只是想知道是否可以使用 CSS 或 javascript 创建填充动画 基本上我想创建一个填充动画 如下图所示 http i40 tinypic com eit6ia png http i40 tinypic com eit6ia png
  • Javascript split 不是一个函数

    嘿朋友们 我正在使用 javascript sdk 通过 jQuery facebook 多朋友选择器在用户朋友墙上发布信息 但是我收到此错误friendId split 不是函数 这是我的代码 function recommendToFr
  • 为什么我们在打字稿中使用 HTMLInputElement ?

    我们为什么使用 document getElementById ipv as HTMLInputElement value 代替 document getElementById ipv value 功能getElementById返回具有类
  • 将 UMD Javascript 模块导入浏览器

    你好 我正在对 RxJS 进行一些研究 我可以通过在浏览器中引用它来使用该库 如下所示 它使用全局对象命名空间变量 Rx 导入 我可以制作可观察的东西并做所有有趣的事情 当我将 src 更改为指向最新的 UMD 文件时 一切都会崩溃 如下所
  • 页面上使用 HTML Editor Extender 进行回发会导致 IE11 中出现 JavaScript 错误

    我已将 HTML 编辑器扩展程序添加到我正在处理的页面中 现在每当我在页面上发回帖子时 都会收到以下 Javascript 错误 JavaScript 运行时错误 参数无效 之后什么也没有发生 这在 IE10 或更低版本以及我所知道的所有其
  • Firebase 函数 onWrite 未被调用

    我正在尝试使用 Firebase 函数实现一个触发器 该触发器会复制数据库中的一些数据 我想观看所有添加的内容votes user vote 结构为 我尝试的代码是 const functions require firebase func
  • 日期出现奇怪的错误,“未捕获非法访问”

    所以我试图找到最新的DateJavascript 可以处理 我把它减少到 9 月 275760 并增加了我开始捕获未捕获的天数illegal access例外new Date 09 24 275760 to new Date 10 13 2
  • Three.js 各种大小的粒子

    我是 Three js 的新手 正在尝试找出添加 1000 个粒子的最佳方法 每个粒子都有不同的大小和颜色 每个粒子的纹理是通过绘制画布创建的 通过使用粒子系统 所有粒子都具有相同的颜色和大小 为每个粒子创建一个粒子系统是非常低效的 有没有
  • Vue 和 Vuex:处理依赖的计算属性

    我的应用程序是一个使用 Vuex 在 Vue 中构建的精简电子表格 关键组件是TableCollection Table and Row The TableCollection有一个包含多个的数组Table对象 每个Table有一个包含多个
  • 带参数的事件监听器

    我想将参数传递给 JavaScript 中的事件侦听器 我已经找到了解决方案 但我无法理解它们为什么或如何工作以及为什么其他解决方案不起作用 我有 C C 背景 但是 Javascript 函数的执行有很大不同 您能否帮助我理解以下示例如何

随机推荐

  • Python-PyQt5-图形可视化界面(3)--按钮--Qpushbutton

    Python PyQt5 图形可视化界面 3 按钮 Qpushbutton 转载自 Python PyQt5 图形可视化界面 3 按钮 Qpushbutton 简书 https www jianshu com p a3f29d3bb234
  • 如何提高英文的科研写作能力-施一公

    转自 http blog sciencenet cn home php mod space uid 46212 do blog id 349932 作为一个科研工作者 在国际学术期刊上发表科研论文是与同行交流 取得国际影响的必经之路 有些国
  • 第十章:C语言的调试

    很多小伙伴刚开始听到C语言的调试 这是个啥 表示很怀疑 敲代码不就是直接就是干嘛 结果很多小白们 一运行错误多的数都数不过来 就开始这改改 那删删 莫名奇妙就运行成功了 到最后都不知道到底那错了 有一种小朋友是否有多问号的感觉 可想而知代码
  • AndroidStudio历史记录找回本地修改代码

    今天干了一件特别无语的事情 在现有项目中将新需求开发的代码包想挪一下位置 结果在AndroidStudio中移动失败了 并且原有的包下所有代码都找不到了 搜索了整个项目都没有找到相应的java文件 瞬间心慌啊 这意味着该包下的代码白写了 想
  • npm install报错 -> npm ERR! Unexpected token ‘.‘ 报错解决办法

    原因 我遇到这个问题的场景是用nvm1 1 7的版本安装了16 x以上的node 然后再下载依赖的时候就报错了 总结一下就是nvm版本太低了 他的里面没有集成高版本node导致的 解决 我们把nvm版本换到最新的就可以了 1 卸载掉当前所有
  • 第4章 R语言编程基础——数据整理与预处理

    目录 4 1 经济 金融数据库 4 1 1 金融数据与数据库 4 1 2 国外金融数据库概况 4 1 3 国内金融数据库概况 4 1 4 数据的主要内容 4 2 数据格式 4 3 数据的导入 4 3 1 从控制台上输入数据 4 3 2 上市
  • 异步模式之生产者与消费者

    1 定义 异步 由于存在消息队列 生产者产生的数据不能立刻被消费者处理 中间会有延迟 因此归为异步 异步与同步的区别 同步 线程A要请求某个资源 但是此资源正在被线程B使用中 因为同步机制存在 线程A请求不到 只能等待下去 异步 线程A要请
  • 存储过程违反GTID一致性的问题解决方法

    java sql SQLException Statement violates GTID consistency CREATE TEMPORARY TABLE 解决 2021 2 1项目现场反馈存储过程程序报错无法创建和删除临时表 语句违
  • io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: no further informati

    项目启动报错 io netty channel AbstractChannel AnnotatedConnectException Connection refused no further information 127 0 0 1 63
  • Linux访问ioctl访问失败的问题

    今天遇到一个ioctl访问失败的问题 做个记录 主要是用户态是32位 内核态时64位的 对于字符设备 内核中ioctl的挂接有不同 一 写64位driver驱动时 必须实现compat ioctl实现 用户态是32位时 会调用这个接口 否则
  • SpringBoot使用多线程

    一 概述 1 为什么使用多线程 在我们开发系统过程中 经常会处理一些好费时间的任务 如 向数据库中插入上百万数据 将会导致系统等待 这个时候就会自然想到使用多线程 2 为什么使用Spring来实现多线程 使用Spring比使用JDK原生的并
  • 企业人员信息管理(一)

    一 struts2和hibernate整合 1 整合 StrutsPrepareAndExecuteFilter作用详解 https blog csdn net clk esunny article details 80293978 过滤器
  • 跨境外贸业务,选择动态IP还是静态IP?

    在跨境业务中 代理IP是一个关键工具 它们提供了匿名的盾牌 有助于克服网络服务器针对数据提取设置的限制 无论你是需要经营管理跨境电商店铺 社交平台广告投放 还是独立站SEO优化 代理IP都可以让你的业务程度更加丝滑 达到事半功倍的效果 代理
  • python是不是面向对象的程序设计语言是_Python是一种面向对象程序设计语言

    Python是一种面向对象程序设计语言 答 正确 中国大学MOOC 构建人类命运共同体 要求在政治上 答 相互尊重 平等协商 成人膀胱空虚时膀胱尖不超过 答 耻骨联合上缘 课堂教学中常采用 读一读 议一议 练一练 讲一讲 的教学方式 这符合
  • 百度文心一言可以接入微信小程序啦!

    文心一言 英文名 ERNIE Bot 是百度全新一代知识增强大语言模型 文心大模型家族的新成员 能够与人对话互动 回答问题 协助创作 高效便捷地帮助人们获取信息 知识和灵感 接入小程序效果图 1 百度智能云 千帆大模型平台 注册登录账号 2
  • Qt Creator增强套装16.9.27.12更新

    HI 大家好 这里是jiangcaiyang 我们很高兴地告诉大家 我们将要发布Qt Creator增强套装新的版本了 这一次呢 主要是应大家强烈的要求 更新了我们的聊天神器 萌梦聊天室 现在它不再频繁地崩溃以及暂时性地无法回消息了 这个聊
  • docker安装seata

    下载seata docker镜像 docker pull seataio seata server 1 4 2 创建挂载目录和文件 mkdir p opt docker seata conf touch opt docker seata c
  • 创建老版本react-native项目,以0.59.10为例(0.60.0之前的版本)

    目录 创建react native 0 59 10版本项目前言 开始创建react native 0 59 10版本 创建react native 0 59 10版本项目前言 写这篇文章之前 有些东西要说明一下 当前rn的最新版本为 0 7
  • JavaFx转换为exe

    要点 首先导入依赖 在pom xml导入依赖 具体解释 而maven的两种方式 前者生成两个文件 程序jar包与复制所需的依赖jar包到lib目录 操作比较繁琐 而且在exe4j中进行打包的话会出现Caused by java lang N
  • JS基础知识(二十八):箭头函数

    1 箭头函数的使用 箭头函数有两种格式 一种只包含一个表达式 没有 和 return 一种包含多条语句 这个时候 return 就不能省略 箭头函数类型 代码 没有参数 gt 100 function return 10 一个参数 x gt