web-interview
web-interview copied to clipboard
[选择题] 55.(单选题)下面代码的输出是什么
const person = {
name: "Lydia Hallie",
hobbies: ["coding"]
};
function addHobby(hobby, hobbies = person.hobbies) {
hobbies.push(hobby);
return hobbies;
}
addHobby("running", []);
addHobby("dancing");
addHobby("baking", person.hobbies);
console.log(person.hobbies);
A:["coding"]
B: ["coding", "dancing"]
C: ["coding", "dancing", "baking"]
D: ["coding", "running", "dancing","baking"]
答案:C
解析:
函数 addHobby 接受两个参数,hobby 和有看对象 person 中数组 hobbies 默认值的 hobbies。
首先,我们调用函数 addHobby ,并给 hobby 传递'running'以及 hobbies 传递一个空数组。因为我们给 hobbies 传递了空数组,'running' 被 添加到这个空数组。
然后,我们调用函数 addHobby ,并给 hobby 传递'dancing'。我们不向 hobbies 传递值,因此它获取其默认值---对象 person 的属性 hobbies。我们向数组 person.hobbies push dancing
最后,我们调用函数 addHobby ,并向 hobby 传递值'baking',并且向 hobbies 传递 person.hobbies。我们向数组 person.hobbies push dancing。
pushing dancing 和 baking 之后,person.hobbies 的值为['coding','dancing’,'baking']