前言
在前端开发中,我们经常要操作对象。但是,对象在 JavaScript 中是一个很复杂的数据类型,许多时候使用 . 和 [] 操作符来获取对象的属性值可能会出现 undefined。这时候我们就需要一个更健壮的获取对象属性值的方法,这就是 safer-get
这个 npm 包所提供的功能。
本篇文章将会介绍什么是 safer-get
包、为什么需要它、怎么使用它以及一些需要注意的地方,同时还会提供一些示例去验证 safer-get
的使用方法。
什么是 safer-get 包
safer-get 是 npm 上的一个包,它提供了更健壮的获取 JavaScript 对象属性值的方法。
下面是 safer-get 的使用示例:
const saferGet = require('safer-get'); const myObject = { name: 'John Doe' }; const name = saferGet(myObject, 'name'); console.log(name); // 输出 John Doe
为什么我们需要 safer-get 包
下面是一个常见的 JavaScript 代码片段:
const myObj = { name: 'John Doe', age: 25 }; console.log(myObj.address.city);
上述代码运行的结果是:Uncaught TypeError: Cannot read property 'city' of undefined. 这个问题会在很多JavaScript开发中出现,特别是多人协作开发或者批量数据处理的时候,大部分时候我们都希望避免这种 undefined 错误的出现,特别是在代码的调试以及维护过程中。
解决这个问题的方法就是使用 safer-get 包。safer-get 能够帮助我们在获取对象属性值的过程中,避免 undefined 错误的出现,如果属性值不存在,它会返回一个默认值,以便开发者在值不存在的情况下,做出自己的判断和处理。
怎么使用 safer-get
API
安装 Safer Get 包
yarn add safer-get # 或者使用 npm npm install safer-get
saferGet(object, query, defaultValue): 返回 object 路径上的属性值。
- object: 要获取属性的对象
- query: 目标属性的路径,可以是一个数组,比如
['a', 0, 'b', 'c']
表示拿到object.a[0].b.c
的值。 - defaultValue(optional): 如果属性不存在则返回默认值。默认值为空对象
{}
。
示例
下面是一些示例,以体现 safer-get
的使用方法:
获取对象属性值
-- -------------------- ---- ------- ----- -------- - --------------------- ----- -------- - - ----- - ------ ------- ----- ----- - -- ----- --------- - ------------------ -------------- ----------------------- -- -- ------
获取数组中指定索引的元素
-- -------------------- ---- ------- ----- -------- - --------------------- ----- ------- - - - ----- -------- ------ ------ ------ ------- -- - ----- --------- ------ --------- ------ ------- - -- ----- ----- - ----------------- --- --------- ------------------- -- -- --------
属性不存在时返回默认值
-- -------------------- ---- ------- ----- -------- - --------------------- ----- -------- - - ----- ----- ----- ---- --- -- ----- ------- - ------------------ ---------- ---- --------------------- -- ------- --
需要注意的事项
在使用 safer-get 时需要注意以下几点:
safer-get
不能保证所有属性值的完整性,比如我们通过 [] 获取一个数组索引的值,这个索引值是会改变的,如果不确定它是否存在,需要在使用safer-get
时仍然需要加判断条件。在使用 safer-get 获取匹配属性值时,不支持类似
-a-
等特殊字符。
总结
通过本文,我们了解了什么是 safer-get
包以及为什么我们需要它。同时,我们也学习了如何使用 safer-get
取得 JavaScript 对象属性值,以及如何在属性不存在的情况下返回默认值。
在我们的开发中,如果经常处理对象并且要求高可靠性,请尝试使用 safer-get
包,它能够有效地避免由于属性不存在而导致的难以定位和检查的问题,从而提高代码的可维护性、可读性以及可靠性。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60067355890c4f7277583b0b