【发布时间】:2022-01-18 07:49:39
【问题描述】:
之前有人问过这个问题:Trouble understanding what happens during javascript for loop 但是提问者没有得到正确的答案,我也是。我之前学习了 C++ 和 Python,所以我熟悉循环,但是当我练习这段代码时:
let text = "";
let i;
for(i=0; i<5; i++)
{text += "The number is " + i + " ";}
document.write(text);
输出与我的预期完全不同。我访问了 W3schools 但我找不到答案 https://www.w3schools.com/js/js_loop_for.asp
https://www.w3schools.com/js/tryit.asp?filename=tryjs_loop_for_om3
我预计输出是“”,因为文本无法更改,但代码打印出:“数字为 0,数字为 1,数字为 2,数字为 3,数字为 4”。我的问题是,为什么打印在循环之外却在循环中执行?非常感谢!
【问题讨论】:
-
您不会在循环中打印。您不断向名为
text的变量添加更多内容,并且在循环结束后只打印一次 -
感谢您的回答,但为什么 text 不是空字符串,因为它被初始化为 text = ""?
-
循环将在您的 document.write 之前完全执行,因此您的所有连接都将适用
-
我完全忘记了文本已重新分配。我对上下文字符串是不可变的,无法替换其中的字符感到困惑。谢谢!
标签: javascript