如何在不全球化的情况下在同一行中将一个变量设置为另一个变量

时间:2019-01-16 11:19:24

标签: javascript

在这种情况下:

(function() {
   const a = b = 10;
})();
console.log('a:', a); // ReferenceError: a is not defined
console.log('b:', b); // 10

b在全局范围内被定义为var。是否可以在同一个范围内将b设为const呢?就像a一样?

2 个答案:

答案 0 :(得分:1)

您可以将b设置为IIFE函数的参数。这样,b将无法在函数范围之外访问。

(function(b) {
   const a = b = 10;
   console.log(b)
})();


console.log('b:', b);

答案 1 :(得分:1)

我不这么认为。之所以有此“技巧”,是因为b = 10返回了10。但是,const b = 10返回undefined

为什么不只使用:

const a = 10;
const b = a;

这并不慢,而且可读性更好,即使您可以嵌套作业,我也没有真正这样做的理由