条件语句中未被捕获的referenceerror

时间:2017-09-08 08:16:07

标签: javascript html

我正在尝试在视频播放时突出显示视频字幕。 captionTime变量出现 Uncaught ReferenceError:未定义captionTime at:1:1 在条件语句中。如果我在条件语句之外使用console.log它可以正常工作。是因为功能范围吗?

Ubuntu 16.04 LTS

1 个答案:

答案 0 :(得分:0)

这是因为let范围规则。

来自JS MDN

function varTest() {
  var x = 1;
  if (true) {
    var x = 2;  // same variable!
    console.log(x);  // 2
  }
  console.log(x);  // 2
}

function letTest() {
  let x = 1;
  if (true) {
    let x = 2;  // different variable
    console.log(x);  // 2
  }
  console.log(x);  // 1
}

您可以在此SO问题中阅读更多相关信息:

What's the difference between using “let” and “var” to declare a variable?