博客
关于我
map[]和map.at()取值之间的区别
阅读量:512 次
发布时间: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/

你可能感兴趣的文章
OpenCV4(6)-LookUpTable(LUT)查找表(C++,Python,JS)
查看>>
SkyWalking性能剖析
查看>>
JavaScript——原生
查看>>
vue动态组件与插件到底是什么?
查看>>
【2021.5.8 NOI模拟】贪心
查看>>
python3下安装jupyter kernel报错问题
查看>>
mybatis 简单学习
查看>>
操作系统学科复习图
查看>>
P1226 【模板】快速幂||取余运算
查看>>
LeetCode197.打家劫舍
查看>>
pandas(10):数据增删改
查看>>
第7周编程作业
查看>>
A simple problem HDU-2522 【数学技巧】
查看>>
487-3279 POJ-1022【前导0~思维漏洞】
查看>>
D. Timofey and rectangles[四色定理]
查看>>
Problem C. Dynamic Graph Matching [状态压缩DP]
查看>>
ZOJ Problem Set - 2675 Little Mammoth[圆与多边形交]
查看>>
Good Luck in CET-4 Everybody! HDU - 1847 [博弈树,BASH博弈]
查看>>
HashMap集合原理
查看>>
MySQL数据库安装及主从复制搭建
查看>>