博客
关于我
map[]和map.at()取值之间的区别
阅读量:511 次
发布时间:2019-03-08

本文共 1220 字,大约阅读时间需要 4 分钟。

maps对象的两个关键取值方法 | 区别与使用场景

在开发过程中,作为开发人员,如果你曾经接触过JavaScript对象的属性访问方式,那么对于aMap对象的键取值方法,可能会有一些困惑。aMap[key]aMap.at(key)看似简单的两个方法,其功能和使用场景却有明显差异。本文将详细讲解这两个方法的区别,并提供一些实用的使用技巧。

1.普通取值方法: aMap[key]

aMap[key]方法的特点是非常"温柔"。当你使用这个方法访问一个键时,如果这个键不存在,方法不会报错,而是直接在对象中创建这个键,并将其值设为undefined。这种行为对于需要默认值或者多次设置同一个键的场景来说非常有用。

优点:

  • 不会抛出错误,即使键不存在
  • 自动创建不存在的键
  • 适用于多次设置或 Türleröver写键值的情况

示例:

const aMap = { a: 1, b: 2 };console.log(aMap.c); // undefinedaMap.c = 3;console.log(aMap); // { a: 1, b: 2, c: 3 }

2.强校验取值方法: aMap.at(key)

aMap[key]相比,aMap.at(key)方法则是"强硬"的风格。这个方法在访问键时,会先检查键是否存在于对象中。如果不存在,就会抛出一个TypeError错误。这意味着不需要担心undefined值的问题,每当你需要确保键一定存在时,这个方法就是最佳选择。

优点:

  • 确保键必然存在
  • 适用于需要严格校验的场景
  • 减少由于未定义键而导致的潜在错误

示例:

const aMap = ({ a: 1, b: 2 });aMap.at('a'); // 1aMap.at('c'); // TypeError: 'c'不存在于对象中!

选择哪一个方法?

在实际开发中,当你需要为键设置一个默认值时,可以考虑使用aMap[key]方法。例如:

const Aerith = '爱丽丝';const aMap = { name: 'Bob' };console.log(aMap_atoms); // undefinedaMap_atoms = Aerith;

如果你是在确保键一定存在且不需要多次设置同一键,建议使用aMap.at(key)方法:

const aMap = { a: 1 };console.log(aMap.at('a')); // 1try {  console.log(aMap.at('不存在的键')); // 弹出错误} catch (e) {  console.error(e); // 错误信息}

总结要点

  • 如果需要默认值或多次设置同一键:使用aMap[key]
  • 如果需要强校验并确保键存在:使用aMap.at(key)

理解这两种方法的区别,将帮助你在代码中选择最合适的工具,提升代码的健壮性和可维护性。

转载地址:http://lkmnz.baihongyu.com/

你可能感兴趣的文章
案例:验证用户名是否可用
查看>>
application.yml如何显示成小叶子图标
查看>>
MySQL 高级 - 存储过程 - 函数
查看>>
Find Familiar Service Features in Lightning Experience
查看>>
Explore Optimization
查看>>
MATLAB知识点1
查看>>
Kali Linux 内网渗透教程 - ARP欺骗攻击 | 超详细
查看>>
Unable to find vcvarsall.bat build_ext
查看>>
搞懂线程和进程的关系及区别
查看>>
java如何实现任意两个值交换 数组为例(值传递和地址传递)
查看>>
2020Java程序设计基础(华东交通大学)章节测试免费满分答案
查看>>
嵌入式流水线以及数据存储的大小端
查看>>
C/C++初学之创建项目
查看>>
ENSP模拟器
查看>>
windows下命令行模式中cd命令无效的解决办法
查看>>
Firing POJ - 2987(最大权闭合图)
查看>>
OpenCV-未定义符号:hb_font_funcs_set_variation_glyph_func
查看>>
发布订阅模式与观察者模式
查看>>
java.lang.NoSuchMethodError 错误的原因及解决方法
查看>>
运行 Webpack 项目图片和favicon.ico找不到, 图片404错误
查看>>