运算符妙用

返回赋值表达式

参考: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. 三目运算作为返回值

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。