返回赋值表达式
参考:www.zhihu.com/question/51…
let a = 10;
let b = 20;
let ff = () => a=6
let ff = () => { return (a = 6) }
log(ff())
log(a)
逻辑运算返回
a() && b() :如果执行a()后返回true,则执行b()并返回b的值;如果执行a()后返回false,则整个表达式返回a()的值,b()不执行;
a() || b() :如果执行a()后返回true,则整个表达式返回a()的值,b()不执行;如果执行a()后返回false,则执行b()并返回b()的值;
&& 优先级高于 ||
1、只要“||”前面为false,不管“||”后面是true还是false,都返回“||”后面的值。
2、只要“||”前面为true,不管“||”后面是true还是false,都返回“||”前面的值。
3、只要“&&”前面是false,无论“&&”后面是true还是false,结果都将返“&&”前面的值;
4、只要“&&”前面是true,无论“&&”后面是true还是false,结果都将返“&&”后面的值;
5. &&运算,如果都是true,则返回最后一个表达式的值(是值不是布尔值)
6. || 运算,如果都是false,则返回最后一个表达式的值(是值不是布尔值)
1. 逻辑与返回运算
let a = 10;
let b = 20;
function fun () {
return (a = 5) && b && 30
}
console.log(fun())
console.log(a);
2. 逻辑或返回运算
let a = 10;
let b = 20;
function fun () {
return (a = 6) || b || 30
}
console.log(fun())
console.log(a);
三目运算
1. 三目运算赋值用法
2. 三目运算作为执行操作
let a = 10;
let b = 20;
a > 0 ? b = 30 : null
console.log(b);
3. 三目运算作为返回值
可选链
const adventurer = {
name: 'Alice',
cat: {
name: {
dd: 'hello'
}
},
fun: function(){
console.log(1111)
return 3
}
};
console.log(adventurer.xxxxx?.name?.yyyy);