let c=(b=a)的意思是啥

网上看到个源码,大意如下:

let a =1;
let b
let c = (b=a)

console.log(a,b,c)

求前辈翻译一下哈

阅读 127
评论
    3 个回答

    let c=b=a=1; 连续赋值语法,每个变量的值都等于最右边的结果

    如果加了括号 含义有一点不太一样

    let c = (b = a); 可以认为把括号中的结果赋值给c, 问题就变成了 b = a返回的结果是多少。
    一个例子

    let a;
    console.log(a = 1);  // 输出1,注意和  条件判断a == 1区别

    再来一个复杂的例子

    let a = 1;
    let b;
    let c = ((b = a) + 1);
    console.log(a,b,c); // 输出 1 1 2

      相当于es5中的

      var a = 1;
      var b;
      var c = b = a;
      console.log(a, b, c); // 相当于 var a = b = c = 1
        • 3.2k

        这种语句最好不要出现在真实的代码中。
        它其实等效于let c=b=a,这里需要注意区别 let c=(b==a)let c=(b===a)
        后面两个最终c获取的是布尔值,第一个是数值值。

          撰写回答

          登录后参与交流、获取后续更新提醒

          相似问题
          推荐文章