限制在逗号分隔的表达式中传递的变量的范围

时间:2019-07-08 11:23:10

标签: javascript

我构建了一个函数,该函数在其主体内使用逗号分隔的表达式以及在这些表达式之间传递的某些变量,例如:

let y = 3;
const square = x => (y = x ** 2, y);
console.log(square(2), y);

我知道,我可以简单地x => x**2,上面的代码仅用于示例

对我来说,问题是y是在全局范围内声明的(我不想弄乱),而我可以在square主体之外访问该变量(例如{{1} });

我的第一个怀疑是箭头语法问题,但是

console.log(y)

导致相同的问题。 我还试图限制let y = 3; function square2(x) { return (y = x ** 2, y) }; console.log(square2(2), y);的范围:

y

它会抛出

  

未捕获的SyntaxError:意外的令牌const

正如预期的那样。 所以,我的问题是:

  • 有没有办法限制在这种情况下声明的变量的范围;
  • 或者还有其他方法可以在表达式之间传递数据;
  • 或者根本没有问题,并且上面的建筑绝对符合条件

0 个答案:

没有答案