”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 你应该知道的 Javascript 特性

你应该知道的 Javascript 特性

发布于2024-11-07
浏览:613

Features of Javascript You Should Know

在本文中,我们将探讨如何在尝试访问可能是未定义或 null 的数据时防止错误,并且我们将介绍您可以使用的方法用于在必要时有效管理数据

通过可选链接进行安全访问

在 JavaScript 中,当尝试访问嵌套对象中的值或函数时,如果结果为 undefined,您的代码可能会引发错误。此错误可能会停止代码的执行。但是,如果使用 可选链接运算符 ,如果值或函数不存在,它将返回 undefined 而不是抛出错误。 这可以防止您的代码崩溃

例子

const person = {
  name: 'John',
  address: {
    city: 'New York'
  }
};

console.log(person.address?.city); // 'New York'
console.log(person.address?.country); // undefined, no error

const 人 = { 姓名:“约翰”, 地址: { 城市:“纽约” } }; console.log(人.地址?.城市); // '纽约' console.log(人.地址?.国家); // 未定义,没有错误

空值合并

如果变量的值为nullundefined,为了避免这种情况,可以使用nullish合并

运算符

例子

const person = {
  name: 'John',
  address: {
    city: 'New York'
  }
};

console.log(person.address?.city); // 'New York'
console.log(person.address?.country); // undefined, no error

函数 getconfig(config) { 返回配置?? { 超时:1000,重试:3 }; } 让用户配置=空; 让finalConfig = getConfig(userConfig); // { 超时: 1000, 重试: 3 } 控制台.log(最终配置);

使用 Set 和 WeakSet 管理重复项

使用 Set 删除重复项

:

对于具有重复值的数组,可以使用 set

删除

重复值 例子

const person = {
  name: 'John',
  address: {
    city: 'New York'
  }
};

console.log(person.address?.city); // 'New York'
console.log(person.address?.country); // undefined, no error

常量字母= ["a", "b", "c", "c", "a", "d","d",]; const 结果= [...新集合(字母)]; console.log(结果) => ["a", "b", "c", "d"]

使用 Wea​​kSet 防止重复

:

由于WeakSet保存了对象的引用,一个对象只能被添加到WeakSet

一次。

例子

const person = {
  name: 'John',
  address: {
    city: 'New York'
  }
};

console.log(person.address?.city); // 'New York'
console.log(person.address?.country); // undefined, no error

// 创建WeakSet constweakset = new WeakSet(); // 定义对象 const personJane = { name: 'jane' }; const personMike = { name: 'mike' }; // 将对象添加到WeakSet中 weakset.add(personJane); weakset.add(personMike); console.log(weakset.has(obj1)); // 真的 console.log(weakset.has(obj2)); // 真的 // 尝试再次添加相同的对象 弱集.add(obj1); // obj1已经存在,不会再次添加 console.log(weakset.has(obj1)); // 真的 console.log(weakset.has(obj2)); // 真的 // 从WeakSet中删除一个对象 删除(obj1); console.log(weakset.has(obj1)); // 错误的 // 再次添加对象 弱集.add(obj1); console.log(weakset.has(obj1)); // 真的

结论

在本文中,我们探讨了一些重要概念,这些概念可以帮助防止在访问可能未定义或为空的值时发生错误,以及在必要时更有效地管理数据

的方法.

版本声明 本文转载于:https://dev.to/sonaykara/javascript-features-you-need-to-know-2n8c?1如有侵犯,请联系[email protected]删除
最新教程 更多>
  • 您应该避免的错误(以及如何修复它们)
    您应该避免的错误(以及如何修复它们)
    作为一名 React 开发人员,很容易陷入某些编码模式,这些模式一开始看起来很方便,但最终可能会导致问题。在这篇博文中,我们将探讨 5 个常见的 React 错误,并讨论如何避免它们,确保您的代码保持高效、可维护和可扩展。 1. 滥用关键道具 错误: {myList.map((ite...
    编程 发布于2024-11-07
  • 如何在 PHP 中访问 JavaScript 变量值?
    如何在 PHP 中访问 JavaScript 变量值?
    在 PHP 中使用 JavaScript 变量值使用同时涉及 JavaScript 和 PHP 的 Web 应用程序时,通常需要在两者之间交换数据两种语言。然而,由于语言的执行环境不同,直接在 PHP 中访问 JavaScript 变量是不可能的。PHP 在服务器端执行,而 JavaScript 在...
    编程 发布于2024-11-07
  • Popver API VS 对话框模态:相同但不同
    Popver API VS 对话框模态:相同但不同
    我在阅读一些科技新闻博客时偶然发现标题 Popover API 登陆 Baseline。我很困惑,在我最近深入前端开发期间,我最近很难习惯在 HTML 中使用 Elements。在浏览博客时,我一直对到目前为止我如何使用该元素感到困惑。 长话短说 选择: 需要用户焦点的模态弹出窗口...
    编程 发布于2024-11-07
  • Go中不嵌入结构体可以实现方法继承吗?
    Go中不嵌入结构体可以实现方法继承吗?
    嵌入式结构:方法继承的探索理解 Go 中的方法继承In在 Go 中,将方法从一种类型继承到另一种类型的能力主要是通过嵌入结构来实现的。此技术涉及将一个结构嵌入另一个结构,允许外部结构访问和利用嵌入结构的方法。嵌入结构的示例考虑以下内容代码片段:type Properties map[string]i...
    编程 发布于2024-11-07
  • 如何在 PHP 中的 Foreach 循环中检索数组键
    如何在 PHP 中的 Foreach 循环中检索数组键
    在 Foreach 循环期间检索数组键:PHP在 PHP 中使用数组时,通常需要检索其中的键和值foreach 循环。 key() 函数提供了一种在迭代期间访问当前键的便捷方法。但是,在某些情况下,它可能不会产生所需的结果。考虑以下代码,其目的是从示例数组生成 HTML 表:foreach($sam...
    编程 发布于2024-11-07
  • 在 JavaScript 中创建对象的方法
    在 JavaScript 中创建对象的方法
    介绍 在 JavaScript 中创建对象的方法有很多种。 对象字面量 Object() 构造函数 Object.create() 构造函数 ES6 类 对象字面量 这可能是在 JavaScript 中创建对象最快、最简单的方法。这也称为对象初始值设定项,是一个由零...
    编程 发布于2024-11-07
  • 如何在 JavaScript 中扩展自定义异常的错误对象?
    如何在 JavaScript 中扩展自定义异常的错误对象?
    扩展 JavaScript 中的错误对象在 JavaScript 中抛出异常时,可能希望扩展内置 Error 对象以创建自定义错误类型。这允许更具体和信息丰富的异常处理。在 JavaScript 中,继承不是通过子类化与 Python 不同,在 Python 中,异常通常是从 Exception 基...
    编程 发布于2024-11-07
  • MySQL如何保证并发操作时数据的完整性?
    MySQL如何保证并发操作时数据的完整性?
    MySQL 并发:确保数据完整性如果您的 MySQL 数据库使用 InnoDB 存储引擎,您可能会担心在执行过程中潜在的并发问题。同时记录更新或插入。本文探讨了 MySQL 如何处理并发以及是否需要在应用程序中加入额外的处理。MySQL 的并发处理MySQL 采用原子性,这意味着单独的 SQL 语句...
    编程 发布于2024-11-07
  • 如何使用 Go 在 SQL 查询中有效连接字符串和值?
    如何使用 Go 在 SQL 查询中有效连接字符串和值?
    在 Go 中有效地制作 SQL 查询在 Go 中将字符串与文本 SQL 查询中的值连接起来可能有点棘手。与 Python 不同,Go 的字符串格式化语法行为不同,导致常见错误,如此处遇到的错误。元组语法错误初始代码片段尝试使用 Python -style 元组,Go 中不支持。这会导致语法错误:qu...
    编程 发布于2024-11-07
  • 为什么 json_encode() 无法使用 Latin1 编码对 MySQL 数据库中的重音字符进行编码?
    为什么 json_encode() 无法使用 Latin1 编码对 MySQL 数据库中的重音字符进行编码?
    MySQL 中 UTF-8 字符的 JSON 编码难题当尝试使用 latin1_swedish_ci 编码从数据库中检索重音字符并使用 json_encode() 将它们编码为 JSON 时,结果可能出乎意料。预期结果(例如“Abord â Plouffe”)会转换为“null”,从而使编码的 JS...
    编程 发布于2024-11-07
  • 如何在 MySQL 中将行转置为列:综合指南
    如何在 MySQL 中将行转置为列:综合指南
    在 MySQL 中将行转换为列在 MySQL 查询中将行转换为列需要在应用程序中执行复杂的查询或手动操作。GROUP_CONCAT 解决方案虽然 GROUP_CONCAT 可以将行转换为单列,但它不提供整个结果集所需的转置。手动查询方法对于更复杂的转置,需要细致的查询,从原始行手动构造每一列。复杂查...
    编程 发布于2024-11-07
  • 如何解决iOS后台模式下未收到GCM通知的问题
    如何解决iOS后台模式下未收到GCM通知的问题
    当应用程序在 iOS 上处于后台模式时未收到 GCM 通知当 iOS 在后台收到通知但不处理时,会出现此问题它们在用户界面中。要解决此问题,请确保您的应用:启用后台推送通知:检查您的应用是否已请求并获得在后台接收推送通知的权限。设置徽章应用程序图标:验证是否在应用程序的“设置”>“通知”部分中选择了...
    编程 发布于2024-11-07
  • 为什么在 Windows 7 中使用 CLASSPATH 时出现 ClassNotFoundException?
    为什么在 Windows 7 中使用 CLASSPATH 时出现 ClassNotFoundException?
    尽管使用 CLASSPATH 环境变量仍解决 java.lang.ClassNotFoundException在 Windows 7 中尝试使用 Java 连接到 MySQL 数据库时,设置 CLASSPATH 环境变量以包含 JDBC 驱动程序 jar 文件的路径似乎无法解决 java.lang....
    编程 发布于2024-11-07
  • 开发人员需要了解免费外汇 API
    开发人员需要了解免费外汇 API
    如果您是一名开发人员,您一定正在寻找可以帮助您更轻松地工作的工具,对吗?免费的外汇 API 就是其中之一!它使您无需支付任何费用即可获取外汇汇率。但是,许多开发人员对这些 API 不太了解。因此,本文旨在解释什么是免费外汇 API、它为何有用以及如何为您的项目选择一个 API。 什么是免费外汇 A...
    编程 发布于2024-11-07
  • 如何使用 JavaScript 将字符串中每个单词的首字母大写?
    如何使用 JavaScript 将字符串中每个单词的首字母大写?
    使用 JavaScript 将字符串中每个单词的首字母大写在 JavaScript 中,将字符串中每个单词的首字母大写可以可以通过多种方法来实现。一种常见的方法是使用将给定字符串转换为标题大小写的函数。让我们探索一个演示此技术的代码示例:function titleCase(str) { var...
    编程 发布于2024-11-07

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

Copyright© 2022 湘ICP备2022001581号-3