Javascript函数在for循环第一次运行后返回undefined
我有一个关于循环和变量的基本问题。我有以下代码:Javascript函数在for循环第一次运行后返回undefined,javascript,Javascript,我有一个关于循环和变量的基本问题。我有以下代码: function fiveLine(s){ let trim=s.trim() let fulltrim; for (let i=1; i<=5; i++){ fulltrim+="\n"+trim.repeat(i) } return fulltrim } 除了输出“未定义”之外,它的工作方式完全符合我的要求。我知道在for循环更新变量fulltrim之前会访问并返回它,但我不明白为什
function fiveLine(s){
let trim=s.trim()
let fulltrim;
for (let i=1; i<=5; i++){
fulltrim+="\n"+trim.repeat(i)
}
return fulltrim
}
除了输出“未定义”之外,它的工作方式完全符合我的要求。我知道在for循环更新变量fulltrim之前会访问并返回它,但我不明白为什么。换句话说,我不明白为什么输出不正确
aaa
aaaaaa
aaaaaaaaa
aaaaaaaaaaaa
aaaaaaaaaaaaaaa
对我来说,变量fulltrim在第一次返回时已经被For循环更新了,因此它不应该再被未定义了。谢谢你的阅读 fulltrim在i为1时未定义,这就是它打印未定义的原因
使用空字符串初始化fulltrim
let fulltrim = '';
功能五线{
让trim=s.trim
让fulltrim=;
对于let i=1;ifulltrim在i为1时未定义,这就是它打印未定义的原因
使用空字符串初始化fulltrim
let fulltrim = '';
功能五线{
让trim=s.trim
让fulltrim=;
对于let i=1;i您需要初始化fulltrim
function fiveLine(s){
let trim=s.trim()
let fulltrim= "";
for (let i=1; i<=5; i++){
fulltrim+="\n"+trim.repeat(i)
}
return fulltrim
}
您需要初始化fulltrim
function fiveLine(s){
let trim=s.trim()
let fulltrim= "";
for (let i=1; i<=5; i++){
fulltrim+="\n"+trim.repeat(i)
}
return fulltrim
}
fulltrim;未设置为任何值,因此JS将其视为未定义。
要防止第一次连接导致第一个空行\n,请改用fulltrim=[]和fulltrim.pushs.repeati。
最后返回fulltrim.join\n;
功能五线{
s=s.trim;
常数fulltrim=[];
对于let i=1;i
fulltrim;未设置为任何值,因此JS将其视为未定义。
要防止第一次连接导致第一个空行\n,请改用fulltrim=[]和fulltrim.pushs.repeati。
最后返回fulltrim.join\n;
功能五线{
s=s.trim;
常数fulltrim=[];
对于let i=1;该代码不初始化fulltrim。使用let fulltrim=;。该代码不初始化fulltrim。使用let fulltrim=;。因此,基本上,首先值“fulltrim”未初始化,这就是它返回“undefined”的原因。但是在该代码初始化之后,fulltrim将使用值“undefined”进行初始化,因此它将按照预期工作?只是尝试一下要真正了解正在发生的事情,您知道。感谢您和所有其他人!请参阅更新的答案,了解在每次迭代中如何更新fulltrim的详细信息。基本上,“fulltrim”在初始化失败时第一次尝试后获得“undefined”值。因此,该值已初始化,因为它现在的值为“undefined”?随后它将按预期工作。我完全理解其他一切,但不知道为什么for循环最终会工作。希望你能按照我的想法。因此,基本上,首先值“fulltrim”没有初始化,这就是它返回“undefined”的原因。但在那之后,fulltrim用值“undefined”初始化,因此它以后会按预期工作?只是t正在努力真正了解发生了什么,你知道。谢谢你,也感谢大家!请参阅更新的答案,了解在每次迭代中如何更新fulltrim的详细信息。基本上,初始化失败时,第一次尝试后,“fulltrim”会得到“undefined”值。因此,该值已初始化,因为它现在的值为“undefined”?随后我完全理解其他的一切,但我想知道为什么for循环最终会起作用。希望你能跟随我的想法。