这两个代码有什么区别。一个 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
循环中访问。
当我在循环中使用 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
循环中访问。