为什么这个 javascript 变量输出, "undefined," 与适当的输出相结合?
Why is this javascript variable outputting, "undefined," combined with the proper output?
我儿子开始学习 javascript,我也一直在尝试学习一些,以帮助保持他的兴趣并回答他的问题。我有一点 C++ 经验,我在玩弄这门语言并尝试编写下面的 javascript,却发现它一直在输出 "undefined"
无论正确答案是什么。我真的很感激任何人为我阐明这件事。谢谢
var word = prompt("Enter some text");
var reversedWord = reverseString(word);
alert(reversedWord);
function reverseString(text)
{
var reversedText = "";
var length = text.length;
for(var i = length; i >= 0; i--)
{
reversedText += text[i];
}
return reversedText;
}
您从等于字符串长度的索引开始。
所以给出:
"Foo"
012
它的长度为三,因此您从索引 3 开始,即 undefined
。
您需要从 var i = length - 1
开始
属性length
对应字符串中元素的数量。例如 'you'.length === 3。但是字母的位置是从零开始的(0、1 和 2)。
在你的例子中,当你说 i = length -> i === 3 和 text[3] === undefined
.
将可变长度设置为:var length = text.length - 1;
,它将起作用。
数组从 0 到长度 -1,所以 text[length] 未定义尝试:
for(var i = length -1; i >= 0; i--)
{
reversedText += text[i];
}
Javascript 使用关键字 'undefined' 表示 'null '.
上述代码中观察到的问题通常称为 'Array index out of bound' 错误。
发生这种情况是因为试图从不存在的位置访问数组中的元素。
在n个元素的数组中,位置编号从0到n-1
即,从 0 到 (length - 1).
因此,在数组上写for循环时,必须保证只引用从0到(length - 1)的位置。
上述代码中的问题可以通过将 for 循环更新为仅在 (length - 1) 和 0 之间循环来解决。
这里是没有显示的更新代码'undefined':
function reverseString(text) {
var reversedText = "";
var length = text.length;
for(var i = (length -1); i >= 0; i--) {
reversedText += text[i];
}
return reversedText;
}
我儿子开始学习 javascript,我也一直在尝试学习一些,以帮助保持他的兴趣并回答他的问题。我有一点 C++ 经验,我在玩弄这门语言并尝试编写下面的 javascript,却发现它一直在输出 "undefined" 无论正确答案是什么。我真的很感激任何人为我阐明这件事。谢谢
var word = prompt("Enter some text");
var reversedWord = reverseString(word);
alert(reversedWord);
function reverseString(text)
{
var reversedText = "";
var length = text.length;
for(var i = length; i >= 0; i--)
{
reversedText += text[i];
}
return reversedText;
}
您从等于字符串长度的索引开始。
所以给出:
"Foo"
012
它的长度为三,因此您从索引 3 开始,即 undefined
。
您需要从 var i = length - 1
属性length
对应字符串中元素的数量。例如 'you'.length === 3。但是字母的位置是从零开始的(0、1 和 2)。
在你的例子中,当你说 i = length -> i === 3 和 text[3] === undefined
.
将可变长度设置为:var length = text.length - 1;
,它将起作用。
数组从 0 到长度 -1,所以 text[length] 未定义尝试:
for(var i = length -1; i >= 0; i--)
{
reversedText += text[i];
}
Javascript 使用关键字 'undefined' 表示 'null '.
上述代码中观察到的问题通常称为 'Array index out of bound' 错误。
发生这种情况是因为试图从不存在的位置访问数组中的元素。
在n个元素的数组中,位置编号从0到n-1
即,从 0 到 (length - 1).
因此,在数组上写for循环时,必须保证只引用从0到(length - 1)的位置。
上述代码中的问题可以通过将 for 循环更新为仅在 (length - 1) 和 0 之间循环来解决。
这里是没有显示的更新代码'undefined':
function reverseString(text) {
var reversedText = "";
var length = text.length;
for(var i = (length -1); i >= 0; i--) {
reversedText += text[i];
}
return reversedText;
}