javaScript 函数 - 为什么我的默认参数失败?

2024-03-27

我的 Javascript 函数导致我的控制台返回我:

类型错误:样式为空

这里是片段:

let style = {
  one: 1,
  two: 2,
  three: 3
}

function styling(style = style, ...ruleSetStock) {

  return ruleSetStock.map(ruleSet => {
    console.log(ruleSet)
    return style[ruleSet]
  })
}

console.log(styling(null, "one", "two", "three"))

我不明白为什么。在我看来一切都很棒

任何提示都会很棒, 谢谢。


默认参数 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Default_parameters仅当以下情况时才被赋值no value or undefined已通过

let defaultStyle = {  one: 1, two: 2, three: 3 }

function styling(style = defaultStyle, ...ruleSetStock) {
  return ruleSetStock.map(ruleSet => {
    return style[ruleSet]
  })
}

console.log(styling(undefined, "one", "two", "three"))

如果我想在各种上使用默认值怎么办falsy values such as false, '', null ?

您不能为此使用默认参数,但可以使用||

let style1 = {  one: 1, two: 2, three: 3 }

function styling(style, ...ruleSetStock) {
  style = style || style1
  return ruleSetStock.map(ruleSet => {
    return style[ruleSet]
  })
}

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

javaScript 函数 - 为什么我的默认参数失败? 的相关文章

  • 如何四舍五入到一半,始终为正方向? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 如何实现以下舍入 0 0126083
  • HTML 和 标签有什么区别?

    HEAD 标签和 BODY 标签有什么区别 大多数 HTML 书籍仅 简短 提及 and 标签 但它们消失得很快 它们会影响浏览器呈现网页的方式吗 另外 它们会影响 javascript 的运行顺序吗 我的意思是 如果我里面有一个javas
  • Visual Studio 改变 Ctrl-K-D 的工作方式

    In Visual Studio I m using 2012 is there any way of editing the way that Ctrl K D combinations handles its Auto Formatti
  • 角度垫排序不适用于带点表示法的 matColumnDef

    我正在尝试按列对表进行排序 当我必须过滤另一个结果中的结果时 就会出现问题 我尝试通过括号表示法和点表示法访问该属性 但没有给出结果 还将最终节点放置在 matColumnDef 中 但失败 因为有 2 列同名 table table
  • 如何将类型添加到 Vite 库构建中?

    我按照vite文档使用图书馆模式 https vitejs dev guide build html library mode我能够生成一个工作组件库 我创建了该项目vue ts预设 在我的组件中 我定义了道具及其类型 并使用了一些接口 但
  • fadeOut() 和slideUp() 同时进行?

    我已经发现jQuery 淡出然后滑动 https stackoverflow com questions 734554 jquery fadeout then slideup这很好 但不是那个 我怎么能够fadeOut and slideU
  • Emacs Lisp 可以将 lambda 形式分配给像Scheme 这样的变量吗?

    在研究 Emacs Lisp 的符号单元时 我发现像这样的示例函数 defun a rest x x 我可以打电话 symbol function a 返回 lambda rest x x 如果我愿意的话我可以使用它 gt lambda r
  • 转义 \u200b(零宽度空格)和其他非法 JavaScript 字符

    我有一组 JavaScript 对象 我引导到后端模板 以在页面加载时初始化我的 Backbone js 集合 它看起来像这样 作为 Twig 模板 我遇到的问题是某些文本字段包含 u200b 零宽度空格 这会破坏
  • 如何调试超时等待异步 Angular 任务?无法在角度页面上找到元素

    编辑 请注意 在 ernst zwingli 的帮助下 我找到了问题的根源 因此 如果您遇到相同的错误 他指出的修复之一可能会帮助您 我的问题是量角器本身的一个已知问题 如果您认为这可能是您 我已经扩展了我的步骤 以在我最初的问题之后查明问
  • 为什么函数声明在不同浏览器中的处理方式不同?

    虽然我在谷歌中找不到对此的引用 但我熟悉这样一个事实 在 javascript 中 全局函数声明在执行任何代码之前都会被解释 换句话说 这工作得很好 f function f 但是 我注意到 chrome 和 firefox 对全局函数声明
  • 如何根据另一个下拉列表中的选择动态填充下拉列表中的选项?

    我有一个表 其中包含类别信息 例如产品 我已将它们列在下拉菜单中 现在 我需要做的是 在下一个下拉菜单中列出所选类别的子类别 我希望 javascript 是必需的 但我对 javascript 还不太熟悉 将非常感谢您的帮助 你应该使用
  • Socket IO 服务器到服务器

    服务器是否可以使用 Socket IO 连接到另一个服务器并被视为客户端 并让它加入房间 接收 io sockets in lobby emit 和更多 第一个服务器也在监听连接 消息 嘿 Brad 下面是我的完整 js 应用程序 供参考
  • JSONP 使用 JQuery 从 HTTPS 协议获取 JSON

    我正在尝试获取从 https 安全站点发送的 JSON 客户端希望不要使用任何服务器端语言 全部都是 Javascript 我读到 当使用 Jquery 中的 ajax 函数时 我必须使用 JSONP 才能从安全站点加载 JSON 我的第一
  • Riak 在 MapReduce 查询中失败。使用哪种配置?

    我正在与 riak riak js 结合开发一个 nodejs 应用程序 并遇到以下问题 运行此请求 db mapreduce add logs run 正确返回存储在存储桶日志中的所有 155 000 个项目及其 ID logs 1GXt
  • D3 向对象添加超链接?

    我正在尝试制作 D3 图 它将代表我网站的菜单 我尝试按照此处的其他指南添加超链接 但它们都不起作用 每个对象都会有一个不同的 URL 指向 主页 关于 联系方式等 如果添加超链接 我可以拖动对象吗 这意味着如果我按住单击 如果我单击该对象
  • 引用自身的 Javascript 对象...有问题吗?

    由于 Javascript 允许通过引用分配复合值 因此如果 Javascript 对象引用自身 它将创建无限的引用集 如控制台中所示 这看起来像是某种无限循环 但 Chrome 似乎没有问题 这样做是否存在任何内存问题或其他风险 就记忆力
  • AngularStrap 工具提示禁用我的自定义指令

    我正在尝试让 bs tooltip AngularStrap 指令与我自己的名为 checkStrength 的自定义指令一起使用 该指令检查密码的强度 单独使用这些指令中的任何一个时 它们都可以正常工作 但不能一起工作 This http
  • jQuery 中什么函数相当于 .SelectMany()?

    让我解释一下 我们知道 jQuery 中的映射函数充当 Select 如 LINQ 中 tr map function return this children first returns 20 tds 现在的问题是我们如何在 jQuery
  • 在 React Web 应用程序中使用 createjs-soundjs

    我想用https www npmjs com package createjs soundjs https www npmjs com package createjs soundjs在 React Web 应用程序上播放声音 我正常安装了
  • 标记(Markdown)+ Mermaid(流程图和图表)

    努力去争取 美人鱼 https github com knsv mermaid https github com knsv mermaid跟 共事 标记 https github com chjj marked https github c

随机推荐

  • 如何在 Android Studio 中编辑 .jar 文件

    如何使用 Android Studio 编辑 jar 文件中的 class 文件中的代码 当然 我已经尝试过编辑它 由于某种原因 我试图编辑的类是只读的 Jar文件是压缩档案 zipped files class文件 以及一些其他资源 cl
  • 学习 C# Excel 互操作的资源 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 有哪些资源可以帮助我快速启动并运行 C 中的 Excel 互操作 文章从 Visual Studio 2005 开发人员的角度理解 Exc
  • 使用 scipy 中的 optimization.minimize 和 2 个变量和插值函数

    我没有找到使用多维函数从 scipy 执行 optimize minimize 的方法 在几乎所有示例中 解析函数都得到优化 而我的函数则被插值 测试数据集如下所示 x np array 2000 2500 3000 3500 y np a
  • Spark fat jar 在 YARN 上运行多个版本

    我有一个旧版本的 Spark 设置和 YARN 我不想删除它 但仍然想使用较新的版本 我找到了一个couple https community cloudera com t5 Advanced Analytics Apache Spark
  • 窗口对象中奇怪的 self 对象

    我不明白为什么window在下面self and self在下面window目的 如果你去开发工具或 Firebug 并写window你得到了DOM window反对self位于该对象下 奇怪的部分是window在下面self again
  • 在Vue js中显示错误消息

    我有一个以下组件 其中有一个更新员工的方法 我想在 ajax 调用的 错误 回调中分配 更改 erroMessage 变量后立即在视图中显示错误消息 var EmployeeEdit Vue extend template employee
  • 如何在android中创建选项菜单?

    我想使用 c 和 Xamarin Studio 在 Android 应用程序中创建一个简单的选项菜单 我该怎么做 我还没有找到任何这方面的 C 示例 有人可以简单解释一下如何创建选项菜单吗 定义菜单 创建菜单的一种方法是使用放置在 Xama
  • Maven编译器使用的JDK版本在哪里指定?

    当我没有在我的 pom xml 文件中定义如下内容时 在我的系统上的哪个位置为 Maven 定义了编译时使用哪个版本的 Java JDK 我的系统上安装了多个版本 JAVA HOME指向其中之一
  • 使用 SQL Server 2012 恢复多个数据库的最佳脚本?

    我必须恢复大约 60 个不同大小的 SQL 数据库 我在谷歌上搜索找到一个脚本来依次恢复所有数据库 只需从我的文件夹中一一挑选它 我没有那么成功 可能是因为我对 SQL 等还很陌生 它可以在 powershell 或 sql 命令行中完成
  • 无法使用处理程序解决 CalledFromWrongThreadException

    我会尽量保持简单 在我的主要活动中 我创建了一个处理程序 public class ARViewer extends ARDisplayActivity public final MHandler mHandler new MHandler
  • Linux 发行版二进制兼容性

    有没有办法在 Linux 发行版中制作二进制文件并在具有相同架构的另一个发行版上运行它 或者我应该在不同的发行版上编译和构建它 基于 Redhat Debian 的二进制文件发行版之间是否存在兼容性 我想在 fedora 上使用我的 Ubu
  • 尝试打开工作簿时的 VBA 错误处理

    我试图循环浏览文件夹中的所有文件 打开它们并删除文档信息 我在处理无法打开的文件或打开时出现有关禁用宏的弹出消息时遇到问题 我尝试使用错误恢复下一步和错误转到 0 来解决此问题 但随后我遇到运行时失败 因为当我尝试关闭已打开的文件时 我的工
  • 管理多个 AWS 账户凭证的推荐方法?

    通过以下方式管理多个 Amazon Web Services AWS 账户的最佳方式是什么boto 我熟悉博托配置 http docs pythonboto org en latest boto config tut html文件 我正在使
  • Eclipse 使用 jboss 进行远程调试

    如何在 JBOSS 服务器 4 x 版本的 Eclipse 中配置远程调试 So far Step1 我修改了run config文件 通过取消注释以下行 用于远程套接字调试的示例 JPDA 设置 JAVA OPTS JAVA OPTS X
  • 系统更新IMG的src。内存泄漏

    系统更新IMG的src 内存泄漏 我目前每 x 秒更新一张图像 我想到的几种方法如下 拿一个 var url ImageID attr src url 现在这个作品完美地改变了形象but导致内存泄漏 取二 所以它正在创建 DOM 元素 所以
  • 相当于 JMockIt 中的 times() 吗?

    我不认为 minInspiration 或 maxInspiration 等同于 Mockito 中的 times 有没有 请看这个问题 Mockito 和 JMockIt 之间的主要区别 https stackoverflow com q
  • 如何在 Artifactory 中触发 Jenkins 在新工件上构建?

    Artifactory 可以用作 Jenkins 中的 SCM 或源来触发特定工件部署上的构建吗 在 Artifactory Jenkins 插件中没有看到 或错过 任何类似的内容描述 https www jfrog com conflue
  • 选择 count(*) 并“连接”3 个表

    我正在寻找 3 个表的联接内的计数查询 它可以让我对其中一个表的不同值进行计数 我有 3 个表 需要连接它们才能获取预期数据 Workflow Message and Message Workflow Relation 我想获取按状态 已连
  • 为什么使用 Gradle 而不是 Ant 或 Maven? [关闭]

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

    我的 Javascript 函数导致我的控制台返回我 类型错误 样式为空 这里是片段 let style one 1 two 2 three 3 function styling style style ruleSetStock retur