如何使用''让"而不是" var"

时间:2016-11-01 15:28:18

标签: javascript

我们说我有这段代码:

  if (input.length >= 3) {
     var filtered_school = _.filter(schools, function (school) {
         return _.startsWith(school.label, input);
    });
  }
this.setState({ options: filtered_school })

我无法使用'让'因为它无法在范围之外看到所以我无法将filtered_school分配给options

但我听说没有理由在ES6中使用var。

在这种情况下如何使用let?

4 个答案:

答案 0 :(得分:4)

将它放在if

之外
let filtered_school;
if (input.length >= 3) {
  filtered_school = // ...
});

let是块范围的,这意味着如果你在if块中定义它,它就不会存在于它之外,因此你必须在这种情况下将其解压缩。

答案 1 :(得分:4)

您在要使用它的范围内声明变量,即在if块之外。

let filtered_school;
if (input.length >= 3) {
  filtered_school = _.filter(schools, function(school) {
    return _.startsWith(school.label, input);
  });
}
this.setState({
  options: filtered_school
})

答案 2 :(得分:1)

let在ES6中创建了块级范围,您可以在外面声明它并在filter中分配它。

let filtered_school;
 if (input.length >= 3) {
    filtered_school = _.filter(schools, function (school) {
         return _.startsWith(school.label, input);
    });
  }
this.setState({ options: filtered_school })

答案 3 :(得分:1)

let是块范围的,因此如果let位于{}内或逻辑块中,则只能在那里访问它。要使其在示例之外可访问,请将其置于if语句之外。

 let filtered_school;
 if (input.length >= 3) {
     filtered_school = _.filter(schools, function (school) {
         return _.startsWith(school.label, input);
    });
 }