【发布时间】:2016-09-03 15:18:42
【问题描述】:
有没有办法将两个变量分配给相同的值?
刚刚试过这个:
let x, y = 'hi'
它正在编译为:
'use strict';
var x = void 0,
y = 'hi';
【问题讨论】:
-
let x = 'hi', y = x;- 这是在单个语句中执行此操作的唯一方法。 -
你到底想做什么?
有没有办法将两个变量分配给相同的值?
刚刚试过这个:
let x, y = 'hi'
它正在编译为:
'use strict';
var x = void 0,
y = 'hi';
【问题讨论】:
let x = 'hi', y = x; - 这是在单个语句中执行此操作的唯一方法。
绝对没有理由更喜欢解构赋值而不是简单
let x = 'hi', y = x;
它不仅是一个语句而不是两个语句,而且还避免了额外的分配(所提供的解构解决方案毫无理由地分配了至少一个对象)。
【讨论】:
let x = 'hi', a = x, b = x, c = x, d = x。太难读了。
let x = 'hi', y = x;”
是的,有可能:
let x, y;
x = y = 'hi';
称为链式赋值,可以将单个值赋给多个变量。
查看有关assignment operator的更多详细信息。
如果你有两个以上的变量,可以使用数组破坏赋值:
let [w, x, y, z] = Array(4).fill('hi');
【讨论】:
你可以这样做..但我的建议尽量避免它。
var one, two, three;
one = two = three = "";
【讨论】:
var x=0, y=0;。
这是预期的行为。来自EMCA-262 6th edition:
如果
let声明中的 LexicalBinding 没有Initializer变量被赋值undefined当 LexicalBinding 被评估。
【讨论】:
var x = y = 'hi';
alert('x'+x);
alert('y'+y);
【讨论】: