在前端开发过程中,经常需要在对象中获取某个属性的值,但是当对象缺少这个属性时,会导致代码出错。传统的做法是使用长长的 if
判断语句,而 nullablemap
包则提供了一个更加便捷、易用的解决方案,让开发者可以更加专注于业务逻辑的实现。
安装 nullablemap
使用 npm
进行安装:
npm install nullablemap --save
安装完成后,在代码中引入即可使用:
const nullablemap = require('nullablemap');
使用示例
原始对象
下面是一个包含用户信息的原始对象 user
,其中有 username
属性和 birthday
属性:
const user = { username: 'tom', birthday: '1995-01-01' }
当获取 gender
属性时,由于对象中没有这个属性,普通的访问方式会导致出错:
console.log(user.gender); // undefined console.log(user.gender.age); // TypeError: Cannot read property 'age' of undefined
使用 nullablemap
使用 nullablemap
则能够非常方便地避免这种错误。我们可以通过调用 get
方法获取属性值,并且如果属性不存在,它将不会报错。
console.log(nullablemap.get(user, 'gender')); // undefined console.log(nullablemap.get(user, 'gender.age')); // undefined
另外,如果属性值为 null
或者 undefined
,则可以使用 default
参数设置默认值,防止出现代码错误:
console.log(nullablemap.get(user, 'gender', '未知')); // '未知' console.log(nullablemap.get(user, 'gender.age', 18)); // 18
嵌套对象
在对象嵌套的情况下,使用 nullablemap
也非常简单。假设有一个 order
对象,其中包含 buyer
和 seller
两个嵌套对象:
const order = { id: '123', buyer: { username: 'jerry' }, seller: {} }
获取 buyer
和 seller
的 username
属性:
console.log(nullablemap.get(order, 'buyer.username')); // 'jerry' console.log(nullablemap.get(order, 'seller.username')); // undefined
使用 default
参数设置默认值也同样适用:
console.log(nullablemap.get(order, 'seller.username', '未知')); // '未知'
总结
通过使用 nullablemap
,我们能够更加便捷地访问对象属性,有效地避免代码错误。在实际开发中,我们也可以编写一些扩展函数来进一步提升开发效率。
参考链接
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60056d1381e8991b448e6d95