在if语句中声明变量(ES2016中的良好实践)

时间:2016-01-24 12:05:46

标签: ecmascript-6

在ES2016中,我想知道在if语句中声明变量是否是最佳做法:

ECMA2016

let x = 1
if (false) {
  x = 0
}
console.log(x) // 1
ES2016之前的

,使用var

if (true) {
  var x = 1
} else {
  var x = 0
}
console.log(x) // 1

2 个答案:

答案 0 :(得分:1)

ES5的最佳实践真的是

var x;
if (true) {
  x = 1
} else {
  x = 0
}

甚至

var x = true ? 1 : 0;

因为在功能范围的顶部定义var总是最清楚的(即使你还没准备好为它分配任何东西),也只能定义一次。

使用ES2015,您的示例是正确的:您应该在要使用的最高范围/块级别中定义x。

答案 1 :(得分:-1)

使用ECMA2016,你不能在if块中声明新变量,然后使用otside那个块。所以,你的变体看起来不错。