【问题标题】:what is the difference between these two codes. One return error and second one return no error? [duplicate]这两个代码有什么区别。一个返回错误,第二个返回没有错误? [复制]
【发布时间】:2021-07-14 14:38:23
【问题描述】:

当我在循环中使用 var 时,我没有收到任何错误。

function reverseString(str) {
  for (var reversedStr = "", i = str.length - 1; i >= 0; i--) {
    reversedStr += str[i];
  }
  return reversedStr;
}
console.log(reverseString("hello"))
//OUTPUT --------> olleh

当我在循环中使用 let 时出现错误。

function reverseString(str) {
  for (let reversedStr = "", i = str.length - 1; i >= 0; i--) {
    reversedStr += str[i];
  }
  return reversedStr;
}
console.log(reverseString("hello"))
//OUTPUT -------->Uncaught ReferenceError: reversedStr is not defined

【问题讨论】:

标签: javascript for-loop constants var let


【解决方案1】:

范围界定。

在您的第一个示例中,var reversedString 是函数范围的,并且可以在整个函数中访问。

在您的第二个示例中,let reversedString 是块范围的,并且只能在 in for 循环中访问。

【讨论】:

  • 这是一个很容易找到的骗子。
  • 如果答案比较复杂或与文档不同,那我也回答一个骗子。然而这不是。
  • 我说的不是你。
  • 我算了算了 ;)
猜你喜欢
  • 1970-01-01
  • 2018-02-15
  • 1970-01-01
  • 2012-12-06
  • 2016-11-29
  • 2012-07-17
  • 1970-01-01
  • 1970-01-01
  • 2020-03-13
相关资源
最近更新 更多