独立的 JavaScript 块有什么用处吗?

2024-04-05

The 有关 JavaScript 块的 MDN 文章 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/block给出这个例子:

var x = 1;
{
  var x = 2;
}
alert(x); // outputs 2

如您所见,JavaScript 没有块作用域。那么 JavaScript 中的独立块有什么好的用例吗?

我所说的“独立”是指不与控制流语句配对(if, for, while等)或function.


ES2015 引入了块作用域let https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/let and const https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/const,因此独立块对于限制变量的范围 https://msdn.microsoft.com/library/bzt2dkta(v=vs.94).aspx:

{
  let privateValue = 'foo';
}

console.log(privateValue); // -> ReferenceError

相比之下var:

{
  var privateValue = 'foo';
}

console.log(privateValue); // -> "foo"

let and const在所有主要浏览器的最新版本(包括 IE11)中均已实现。

  • let兼容性表 http://kangax.github.io/compat-table/es6/#test-let
  • const兼容性表 http://kangax.github.io/compat-table/es6/#test-const
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

独立的 JavaScript 块有什么用处吗? 的相关文章

随机推荐