这两个代码有什么区别。一个 return 错误,第二个 return 没有错误?

what is the difference between these two codes. One return error and second one return no error?

当我在循环中使用 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

范围界定。

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

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