返回赋值表达式
参考:https://www.zhihu.com/question/51223321
let a = 10;
let b = 20;
// 下面两句相等
let ff = () => a=6
let ff = () => { return (a = 6) }
log(ff()) // 6 表示ff函数返回的是等号右边的值6
log(a) // 6 表示a的值为6
赋值运算符
a = b = 5;
// 解析:结果 a 和 b 的值都会成为5。这是因为赋值运算符的返回结果就是赋值运算符右边的那个值,具体过程是:b被赋值为5,然后a也被赋值为 b=5 的返回值,也就是5。
逻辑运算返回
// 运算规则
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. 逻辑与返回运算
// 示例1:
let a = 10;
let b = 20;
function fun () {
return (a = 5) && b && 30
}
console.log(fun()) // 30
console.log(a); //5
2. 逻辑或返回运算
let a = 10;
let b = 20;
function fun () {
return (a = 6) || b || 30
}
console.log(fun()) // 6
console.log(a); // 6
三目运算
1. 三目运算赋值用法
2. 三目运算作为执行操作
// 示例1:
let a = 10;
let b = 20;
// 下面这个表达式整体的返回值相当于最终 return b=30
a > 0 ? b = 30 : null
console.log(b); // 30
3. 三目运算作为返回值