对象笔试题

1.

const animals = {};
let dog = { emoji: '🐶' }
let cat = { emoji: '🐈' }

animals[dog] = { ...dog, name: "Mara" }
animals[cat] = { ...cat, name: "Sara" }

console.log(animals[dog])

答案:{emoji: "🐈", name: "Sara"}

因为属性名如果是非字符串的变量会通过tostring进行转换,dog和cat转换完都是一样的key ‘[object Object]’,

所以猫的会覆盖狗的

2.

const user = {
 email: "e@mail.com",
 password: "12345"
}

const updateUser = ({ email, password }) => {
 if (email) {
  Object.assign(user, { email })
 }

 if (password) {
  user.password = password
 }

 return user
}

const updatedUser = updateUser({ email: "new@email.com" })

console.log(updatedUser === user)

答案: true 一直都在操作堆中的同一块空间

全部评论
以上题目如果不会,建议同学详细了解一下this相关知识,如有需要可报一下牛客前端集训营的课程,连接:https://www.nowcoder.com/courses/cover/live/662
点赞 回复 分享
发布于 2021-07-01 10:29

相关推荐

06-26 18:30
门头沟学院 Java
据说名字越长别人越关...:你问问这里面有多少是正经候选人,而不是乱打招呼的
点赞 评论 收藏
分享
迟缓的斜杠青年巴比Q...:简历被投过的公司卖出去了,我前两天遇到过更离谱的,打电话来问我有没有意向报班学Java学习,服了,还拿我学校一个学长在他们那报班学了之后干了华为OD当招牌
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务