我想用块作用域声明两个变量并将它们初始化为相同的值.如果下面这样工作会很好但不会......
{
let a = b = "wang";
}
console.log("b:", b);
Run Code Online (Sandbox Code Playgroud)
变量'a'具有块范围,但变量'b'不具有,它具有函数范围,就好像它是用var声明的一样.
是否有一条线路*实现这一目标或我必须做...
let a, b;
a = b = "wang";
Run Code Online (Sandbox Code Playgroud)
*并不是说我会在公共汽车下扔掉可读性以节省你理解的几个字符,我只是好奇!
Jam*_*rpe 23
您可以在单个let声明中执行以下操作:
{
let a = "wang", b = a;
}
console.log("b:", b); //undefined or ReferenceError
Run Code Online (Sandbox Code Playgroud)
因为这两个a和b与声明let的括号内,他们都得到阻止范围.您必须先分配,a以便在分配之前分配它b.
Ori*_*iol 11
{
let [a, b, c, d] = Array(4).fill("wang");
console.log(a, b, c, d); // "wang", "wang", "wang", "wang"
}
a; // ReferenceErrorRun Code Online (Sandbox Code Playgroud)
如果您不想打扰变量的数量并且不想分配大数组,您还可以使用立即调用的生成器函数表达式.为简单起见,将其实现为辅助函数可能是个好主意
const repeat = function*(value){while(true) yield value};
{
let [a, b, c, d] = repeat("wang");
console.log(a, b, c, d); // "wang", "wang", "wang", "wang"
}
a; // ReferenceErrorRun Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3799 次 |
| 最近记录: |