整理下之前做的有点疑惑的js基础题目和大家分享以下,如果大家觉得有用,别忘了点一下赞哦
ES6 链判断运算符 ?.
function test(arr) {
console.log(arr?.[1]?.[1]); //flag
}
test(['A']) // undefined
test([["A", "B"], "C"]); //undefined
test(); //undefined
test(["A", ["B", "C"]]); //"C"
这题的主要问题是
一开始可能想?. 是什么操作?
flag处:?. 是ES6的链判断运算符,层层判断该对象是否存在,如果不存在,就跳过。
扩展下还有一个 null判断运算符,只对 null和undefined 会计算下一个值
console.log(false ?? "星期天")//false
console.log(null ?? "星期天")//星期天
console.log(undefined ?? "星期天")//星期天