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基础知识(二十八):箭头函数 的相关文章

  • JavaScript 日期 + 7 天

    这个脚本有什么问题 当我将时钟设置为 29 04 2011 时 它会添加2011年4月36日在星期输入 但正确的日期应该是6 5 2011 var d new Date var curr date d getDate var tomo da
  • VideoJs 在 Firefox 中的 Flash 回退问题

    我尝试将 videoJs 添加到我的网站来播放 MP4 文件 所有这些在 Chrome 中都能完美运行 但当我转到 Firefox 不支持 MP4 文件 时 Flash 播放器停留在黑屏上 按钮不执行任何操作 简单的问题 为什么 我不明白
  • 将输入字段添加到 div 容器 (javascript)

    我想将一些 html 数据添加到 div 容器的末尾 目前 我使用innerHtml来做到这一点
  • 无法使用 Karma 运行 Coverage

    我正在尝试使用 karma 运行覆盖率 但收到警告 警告 预处理 无法加载 覆盖率 它未注册 我以为我在运行 npm install g karma coverage save dev 时安装了覆盖范围 这是我的配置文件 module ex
  • 构建基于纯 JavaScript 的 Web 应用程序(客户端和服务器端)是否有意义? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我一直认为 JavaScript 是任何 Web 应用程序客户端的一个很好的补充 或者更确切地说 在过去几年中 是一个必须具备的功能 即使当我开
  • JS中的递归排序

    在一次采访中 我被要求编写一个程序 算法来使用递归对数字数组进行排序 虽然我含糊地回答了它 但我尝试并想出了以下代码 您可以使用以下JSFiddle https jsfiddle net RajeshDixit 2u9mLegv 1 链接来
  • Moment.js 在 Firefox 中返回 NaN,但在 Chrome 中不返回 NaN

    我有以下代码行 moment 11 10 2013 09 03 AM diff moment minutes 在 Chrome 30 0 1599 101 中 以下行返回一个数字 它每分钟都会更改 因此确切的值不相关 在 Firefox 2
  • 转义双引号 JavaScript

    我试图在 iPhone 上查看时运行某种图像格式 在其他情况下运行一些 Flash 视频 var uagent navigator userAgent toLowerCase if uagent search iphone gt 1 doc
  • 计算链接上的点击次数(不带 onclick)[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我有诸如此类的链接 a href h
  • 如何观察Firebase存储上传事件

    我有一个将照片上传到 Firebase 存储的 iOS 应用程序 以及一个连接到同一个 Firebase 的 Web 应用程序 有没有办法从网络上观察存储的变化 当上传照片时 只有iOS设备本身可以访问UploadTask 并且我没有看到o
  • javascript RegExp 的奇怪行为:相同的正则表达式产生不同的结果[重复]

    这个问题在这里已经有答案了 可能的重复 为什么 Javascript 中带有全局标志的 RegExp 会给出错误的结果 https stackoverflow com questions 1520800 why regexp with gl
  • 将 viewbag 转换为 javascript 数组

    我想将数据从 ViewBag mytags 获取到 Javascript 数组 但我无法执行此操作 function var sampleTags new Array var array Html Raw Json Encode ViewB
  • TinyMCE 选择文本并使用 javascript 激活链接对话

    我正在尝试编写一个自动化 使用黄瓜 水豚 硒 测试 它将在tinymce框中选择一些文本 单击链接按钮 然后打开链接选择页面 但链接按钮仅在选择某些文本时才变为活动状态 所以第一轮 tinyMCE activeEditor selectio
  • 如何将对象传递给 onclick 事件[重复]

    这个问题在这里已经有答案了 可能的重复 Javascript 循环内的事件处理程序 需要闭包吗 https stackoverflow com questions 341723 event handlers inside a javascr
  • Cordova/Phonegap 通过 JavaScript 在应用程序浏览器中打印

    我想从我正在开发的 iPad 应用程序打印一页 或某些页面 应用程序启动时所做的第一件事是通过以下代码加载外部网站 window location https 我现在想从这个外部网站打印一些东西 在 iPad 上的 Safari 中效果很好
  • Jquery 手风琴默认不折叠

    我正在使用 bootstrap 提供的折叠插件 这是一个 jquery 简单插件 但是它默认折叠 如何修改以使折叠项默认隐藏 只有当我按下标题时 该项目才会折叠并显示 谢谢 插件的文档 只有几行 所以只需要一分钟 http twitter
  • 如何以编程方式移动 OpenLayers Vector?

    API 文档为OpenLayers Feature Vector http dev openlayers org apidocs files OpenLayers Feature Vector js html说 Vector 本身根本没有方
  • 定位分离的 DOM 树内存泄漏

    我在诊断主要使用 Knockout 构建的非常大的单页 Web 应用程序中的分离 DOM 树内存泄漏时遇到问题 我已经调整了应用程序以附加一个假人FooBar对象特定的 HTML 按钮元素 当用户移动到应用程序的不同 页面 时 该元素应该被
  • 如何在禁用按钮上启用 Bootstrap 工具提示?

    我需要在禁用的按钮上显示工具提示 并在启用的按钮上删除它 目前 它的工作原理是相反的 扭转这种行为的最佳方法是什么 rel tooltip tooltip
  • Java 将函数添加到 json 对象而不使用引号。

    我正在用 java 构建一个 json 对象 我需要将一个函数传递到我的 javascript 中并使用 jquery isFunction 对其进行验证 我遇到的问题是我必须将 json 对象中的函数设置为字符串 但 json 对象将周围

随机推荐

  • 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