输出是什么?
javascript
function getFruit(fruits) {
console.log(fruits?.[1]?.[1])
}
getFruit([['🍊', '🍌'], ['🍍']])
getFruit()
getFruit([['🍍'], ['🍊', '🍌']])A. null, undefined, 🍌 B. [], null, 🍌 C. [], [], 🍌 D. undefined, undefined, 🍌
答案: D
解析:
? 允许我们去选择性地访问对象内部更深层的嵌套属性。 我们尝试打印 fruits 数组索引值为 1 的子数组内部的索引值为 1 的元素。 如果在 fruits 数组索引值 为 1 的位置不存在元素,会直接返回 undefined。 如果 fruits 数组在索引值为 1 的位置存在元素,但是子数组在索引值为 1 的位置不存在元素,也会返回 undefined。 首先,我们尝试打印 [['🍊', '🍌'], ['🍍']] 的子数组 ['🍍'] 的第2个元素。这个子数组只包含一个元素,也就意味着在索引值为 1 的位置不存在元素,所以返回的是 undefined 。 其次,我们在没有传入任何参数调用了 getFruits 函数,也就意味着形参 fruits 的默认值为undefined。因为我们选择性地链接了 fruits 在索引值为 1 的元素,因为在索引值为 1 的位置不存在元素,因此返回的是 undefined 。 最后,我们尝试打印 ['🍍'], ['🍊', '🍌'] 的子数组 ['🍊', '🍌'] 的第2个元素。子数组索引值为 1的位置为 🍌 ,因此它被打印出了。