ES6解构,动态赋值
ES6 destructuring, dynamic assignment
let text, value;
if (typeof f == 'string') {
text = value = f;
} else {
let {
text, value
} = f;
}
这样做会创建两个新的变量(来自else
),但是如果我这样写:
let text, value;
if (typeof f == 'string') {
text = value = f;
} else {
{
text, value
} = f;
}
我收到语法错误。这里最好的方法是什么?
作业周围需要括号:
let text, value;
if (typeof f == 'string') {
text = value = f;
} else {
({ // ( at start
text, value
} = f); // ) at end
}
(在 Babel 上实时复制。
您需要这些括号的原因与需要括号或类似原因以立即调用函数的原因相同:告诉解析器它应该期待一个表达式,而不是一个语句。没有parens,当它遇到{
时,它认为这是一个块的开始。但与函数不同的是,它必须是parens,而不是前导一元+
,!
等,如下所示:
let text, value;
if (typeof f == 'string') {
text = value = f;
} else {
+{ // <== Doesn't work like it does with IIFEs
text, value
} = f;
}
相关文章:
- Javascript变量赋值|
- 无法为打字稿字典赋值
- 内部函数不会为外部函数在 jQuery 中动态创建的元素赋值
- 如何在另一个java脚本函数中访问java脚本中动态html表中单元格的动态赋值
- 在 Google Apps 脚本中动态定义变量名称和赋值
- 在 $.post - JQuery 中创建动态变量赋值
- 为html中动态生成的行赋值
- 如何在对象文字赋值中指定动态值
- 如何使用react native动态赋值给TextInput
- 给对象赋值.变量动态形成
- Angularjs如何给动态文本域赋值
- 在AJAX js调用中动态赋值
- 动态赋值给dom
- 将php函数赋值给动态创建的对象
- 将c#中动态函数调用的结果赋值给变量
- 将javascript数组值赋给动态创建的select选项标签
- 为未定义的变量动态赋值
- ES6解构,动态赋值
- 在jQuery中使用动态id为隐藏字段赋值
- 使用动态命名赋值动态创建的Jquery选项卡