”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 了解 JavaScript 中下划线 (`_`) 的使用

了解 JavaScript 中下划线 (`_`) 的使用

发布于2024-11-08
浏览:190

Understanding the Use of Underscore (`_`) in JavaScript

在 JavaScript 中编码时,您可能会遇到用作变量名称的下划线字符 (_),特别是在函数参数中。虽然乍一看似乎很不寻常,但由于各种原因,这种做法在开发人员中很常见。在这篇博文中,我们将探讨下划线代表什么,为什么使用它,以及它在现实示例中的显示方式,例如 coalesceES6 函数。

下划线(_)是什么意思?

在 JavaScript 中,下划线 (_) 通常用作变量的占位符,特别是当变量的标识对代码逻辑不重要时。此约定有助于表明该变量是临时的并具有特定目的,通常用于迭代或作为回调参数。

示例:coalesceES6 函数

为了说明下划线的用法,让我们看一个名为 coalesceES6 的简单函数。此函数接受多个参数并返回第一个既不为 null 也不未定义的参数。

该函数的外观如下:

const coalesceES6 = (...args) => 
  args.find(_ => ![null, undefined].includes(_));

分解:

  1. 箭头功能

    • 该函数使用箭头函数语法定义。 (...args) 允许它接受任意数量的参数,这些参数存储在 args 数组中。
  2. 查找非空值:

    • 函数的核心使用args.find()。此方法遍历 args 数组中的每个元素以查找第一个满足特定条件的元素。
    • 条件检查当前参数(由_表示)是否为数组中的[null, undefined]。
  3. 使用 _

    • 这里的下划线 (_) 代表函数迭代 args 时的每个单独参数。
    • 它用作临时占位符,表明该变量仅在 find 方法的上下文中相关。

为什么使用下划线?

  1. 表示临时变量

    • 当使用 _ 时,开发人员表示该变量除了立即使用之外并不重要。它可以帮助其他程序员理解该变量稍后不会在代码中被引用。
  2. 简洁

    • 使用 _ 这样的单个字符可以使代码更简洁、更短,特别是在函数经常内联编写的函数式编程环境中。
  3. 社区熟悉程度

    • 许多 JavaScript 库和框架使用 _ 作为标准约定。这种熟悉感使开发人员更容易阅读和理解代码。

与更具描述性的名称的比较

虽然使用 _ 很常见,但它不是唯一的选择。开发者还可以选择更具描述性的变量名来增强可读性:

const coalesceDescriptive = (...args) => 
  args.find(arg => ![null, undefined].includes(arg));

在此版本中,使用arg代替_。虽然这提高了清晰度,但函数的逻辑保持不变。使用 _ 还是描述性名称的选择通常取决于个人或团队的偏好。

结论

下划线 (_) 是 JavaScript 中的一种简单而强大的约定。它充当占位符变量,使代码更简洁,并向其他人表明该变量的身份对于整体逻辑并不重要。在像 colonesceES6 这样的函数中,使用 _ 可以让开发人员专注于功能而不是变量命名的细节。

下次您在 JavaScript 中看到下划线时,您就会知道这不仅仅是一个随机选择,而是一个深思熟虑的决定,有助于实现清晰简洁的编码实践。

版本声明 本文转载于:https://dev.to/shashankpatil15/understanding-the-use-of-underscore-in-javascript-10fk?1如有侵犯,请联系[email protected]删除
最新教程 更多>
  • 以下是一些标题选项,请记住问题格式的需要:

**专注于挑战:**

* **如何使用 AST 以编程方式修改 Python 源代码?**
* **什么工具Ena
    以下是一些标题选项,请记住问题格式的需要: **专注于挑战:** * **如何使用 AST 以编程方式修改 Python 源代码?** * **什么工具Ena
    Python 源代码修改的 AST 操作以编程方式编辑 Python 源代码通常涉及读取代码并将其解析为抽象语法树 (AST)。然而,修改 AST 并写回修改后的代码以生成新的源文件对于像 ast 和编译器这样的标准 Python 模块来说可能具有挑战性。lib2to3 库提供了解决此问题的一个方法...
    编程 发布于2024-11-08
  • 如何解决 PHP CURL CURLOPT_SSL_VERIFYPEER 中的“SSL CA 证书问题”错误?
    如何解决 PHP CURL CURLOPT_SSL_VERIFYPEER 中的“SSL CA 证书问题”错误?
    PHP CURL CURLOPT_SSL_VERIFYPEER:解决证书验证问题尽管努力使用 CURLOPT_SSL_VERIFYPEER 禁用 SSL 证书验证,但某些用户还是遇到了错误:“在执行 CURL 请求时,SSL CA 证书出现问题(路径?访问权限?)” PHP.解决问题要解决此问题,必...
    编程 发布于2024-11-08
  • 使用 JavaScript 进行函数式编程
    使用 JavaScript 进行函数式编程
    JavaScript 中的函数式编程是什么? F函数式编程是最近流行的一种范式,因为它允许您编写更加模块化、可重用且易于维护的代码。函数式编程是一种依赖于两个主要概念的编程范例。 首先,代码以函数的形式编写,对数据进行操作,不改变任何参数。不会修改现有数据,而是创建新数据。 其次,...
    编程 发布于2024-11-08
  • MySQL 中 INSERT 语句的最大大小是多少?
    MySQL 中 INSERT 语句的最大大小是多少?
    MySQL INSERT 语句中的查询大小限制在 MySQL 中执行 INSERT 语句时,考虑潜在的大小限制至关重要。本文探讨了决定单个 INSERT 语句中可以包含的最大行数和字节数的因素。行计数限制MySQL 不强制执行限制可以使用“INSERT ... SELECT”模式插入的行数。假设源数...
    编程 发布于2024-11-08
  • 如何从原始列表中每第 N 个项目生成一个新列表?
    如何从原始列表中每第 N 个项目生成一个新列表?
    用原始列表中的每 N 个项目创建一个列表在数据分析或编程中,通常需要使用一个清单。一项常见任务是创建一个仅包含原始列表中每第 N 个项目的新列表。例如,给定一个从 0 到 1000 的整数列表,我们如何获得一个仅包含第一个和后续第 10 个项目的列表?使用传统的 for 循环,我们可以按如下方式完成...
    编程 发布于2024-11-08
  • 将通过 Kalp API Gateway 生成的 API 端点与您的前端应用程序集成
    将通过 Kalp API Gateway 生成的 API 端点与您的前端应用程序集成
    Introduction Hello, readers; congratulations on making it to the final part of this tutorial series. Now that you have learnt how to create a...
    编程 发布于2024-11-08
  • 反应虚拟 DOM
    反应虚拟 DOM
    Introduction Hi, Gleb Kotovsky is here! Today I wanna talk about Virtual DOM, specifically - React Virtual DOM So, the virtual DOM (Virtual D...
    编程 发布于2024-11-08
  • 我如何创建我的第一个开源项目。
    我如何创建我的第一个开源项目。
    这篇文章是关于我如何决定创建和共享一个简单的工具来输入剪贴板内容,从而产生了 CBPK 项目。 动机 一切都是从我尝试登录我的 AWS EC2 机器开始的。每次我想使用 Parsec 连接到 AWS EC2 时,我都必须输入整个操作系统密码,因为没有办法通过 Parsec 进行粘贴。...
    编程 发布于2024-11-08
  • 编程语言可以模仿变量运算符吗?
    编程语言可以模仿变量运算符吗?
    编程语言可以支持变量运算符吗?编程语言本身并不支持变量运算符的概念。但是,可以通过创建自定义解决方案来模拟它们的功能。自定义运算符功能:一种常见方法是定义关联运算符名称的对象或映射及其相应的功能。例如,在 JavaScript 中,您可以创建以下对象:var operators = { ' ...
    编程 发布于2024-11-08
  • 编写 Pythonic 代码:更清晰语法的提示和技巧。
    编写 Pythonic 代码:更清晰语法的提示和技巧。
    Python 是一种流行的编程语言,以其可读性和简单性而闻名。然而,即使是经验丰富的 Python 开发人员也可以通过学习新方法来编写更清晰、更高效的代码而受益。 编写 Python 代码的技巧 以下是编写 Pythonic 代码的一些技巧: 使用描述性变量名称。选择清楚表明变量代表什么的变量名称...
    编程 发布于2024-11-08
  • 您可以使用哪些方法来处理 PHP 中的嵌套数组(递归或迭代)?
    您可以使用哪些方法来处理 PHP 中的嵌套数组(递归或迭代)?
    PHP foreach 与嵌套数组:递归方法在 PHP 中使用嵌套数组可能是一个挑战。考虑一个要访问特定嵌套数组的数组,例如主数组的第二个元素。可以使用嵌套循环方法解决该问题:foreach ($tmpArray as $innerArray) { if (is_array($innerArra...
    编程 发布于2024-11-08
  • 如何高效地检查字符串中的字符串扩展?
    如何高效地检查字符串中的字符串扩展?
    在字符串中查找字符串给定一个字符串 url_string 和一个扩展名列表 extensionsToCheck,确定是否有任何扩展名出现在字符串中。一种简单的方法是遍历列表并检查每个扩展:for extension in extensionsToCheck: if extension in ...
    编程 发布于2024-11-08
  • 以下是一些标题选项,请记住问答格式并注重开发人员的实用性:

**直接切中要害:**

* **我应该使用什么 Python SOAP 客户端库
    以下是一些标题选项,请记住问答格式并注重开发人员的实用性: **直接切中要害:** * **我应该使用什么 Python SOAP 客户端库
    有哪些 Python SOAP 客户端库可用,在哪里可以找到它们的文档?在 Python 的 SOAP 客户端库领域,存在各种选项,每种选项都满足至具体要求。对于 SOAP 和 Python 的新手来说,选择合适的库的任务可能是艰巨的。以下是可用 SOAP 客户端库及其文档的综合指南。Legacy ...
    编程 发布于2024-11-08
  • 如何防止 Pandas 在保存 CSV 时添加索引列?
    如何防止 Pandas 在保存 CSV 时添加索引列?
    避免使用 Pandas 保存的 CSV 中的索引列使用 Pandas 进行修改后保存 csv 文件时,默认行为是包含索引列。为了避免这种情况,可以在使用 to_csv() 方法时将索引参数设置为 False。为了详细说明,请考虑以下命令序列:pd.read_csv('C:/Path/to/file....
    编程 发布于2024-11-08
  • 如何在没有 JavaScript 的情况下使用 POST 参数执行 PHP 重定向?
    如何在没有 JavaScript 的情况下使用 POST 参数执行 PHP 重定向?
    带 POST 参数的 PHP 重定向提出的查询涉及将用户从一个网页重定向到另一个网页,同时保留 POST 参数。原始方法涉及通过表单将 GET 参数传输到 POST 参数,该方法被认为不是最理想的,特别是对于禁用 JavaScript 的用户而言。该问题寻求一个纯基于 PHP 的解决方案,用于重定向...
    编程 发布于2024-11-08

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3