JavaScript如何编写获取user对象password键值的函数
问题背景
做JavaScript相关练习题时遇到对应题目,不清楚具体考察要求与实现方式,不确定是否需要使用if语句,咨询具体实现方案。
题目要求
编写一个接收user对象作为入参的函数,返回对象中key为password的对应值;如果对象中不存在该key,则返回undefined。
题目示例:执行retrievePassword({name: 'Sam', password: 'hi!'}) // 返回 "hi!"
测试报错信息
- 测试场景:返回用户密码,报错提示:
retrievePassword输出为undefined,但预期返回值为"chips!",入参为{ "name": "Sam", "password": "chips!" } - 测试场景:返回另一用户的密码,报错提示:
retrievePassword输出为undefined,但预期返回值为"fish!!!",入参为{ "name": "Sam", "password": "fish!!!" }
实现方案
这道题核心考察JavaScript对象属性的基础访问逻辑,不需要使用if语句。JavaScript中访问对象不存在的属性时,默认返回值就是undefined,和题目要求的缺省返回规则完全匹配。
正确实现代码如下:
function retrievePassword(user) { return user.password; }
之前测试报错的核心原因是代码没有正确读取对象的password属性,比如属性名拼写错误、使用了错误的属性访问写法。上述写法可以覆盖所有测试场景:
- 入参对象携带
password键时,直接返回对应属性值,两个报错测试用例会分别返回"chips!"、"fish!!!",符合预期 - 入参对象不存在
password键时,访问结果天然为undefined,满足缺省返回要求,不需要额外加判断逻辑。
内容的提问来源于stack exchange,提问作者Mohammed Abdi
相关产品推荐
相关产品推荐

