使用一个表达式将两个变量分配给相同的值?

时间:2016-05-09 05:16:20

标签: javascript ecmascript-6

有没有办法将两个变量分配给相同的值?

试过这个:

let x, y = 'hi'

它正在编译:

'use strict';

var x = void 0,
    y = 'hi';

5 个答案:

答案 0 :(得分:6)

绝对没有理由比简单地

更喜欢解构分配
let x = 'hi', y = x;

它不仅是一个语句而不是两个语句,但它也避免了额外的分配(提供的解析解决方案至少分配了一个没有充分理由的对象)。

答案 1 :(得分:4)

是的,有可能:

let x, y;
x = y = 'hi';

它被称为链接分配,可以为多个变量分配单个值 查看有关assignment operator的更多详情。

如果您有两个以上的变量,则可以使用数组破坏分配:

let [w, x, y, z] = Array(4).fill('hi');

答案 2 :(得分:1)

你可以这样做..但我的建议尽量避免它。

var one, two, three;
one = two = three = "";

答案 3 :(得分:0)

这预期的行为。来自EMCA-262 6th edition

  

如果let声明中的 LexicalBinding 没有   Initializer当变量被赋值为undefined时   评估 LexicalBinding

答案 4 :(得分:-2)

var x = y = 'hi';
alert('x'+x);
alert('y'+y);

Fiddle