字符串连接 - eloquent javascript 棋盘
String Concatenation - eloquent javascript chess board
为什么这个字符串没有连接成一行?我不是“\n”断行,它不应该像“####”那样登录到控制台吗?
for (var i = 1; i <= 8; i++) {
var str = "";
if (i % 2 == 0)
str += "#";
else
str += " ";
console.log(str);
}
这是console.log函数。它在单行上记录您的表达式结果。您的代码是这样工作的:您只需记录“”,而不是 #,然后是“”,依此类推。如果你想要 # # # #,你不应该在每次迭代时都覆盖 str,而应该用所有值创建一个字符串。使用这个:
var str = "";
for (var i = 1; i <= 8; i++) {
if (i % 2 == 0) {
str += "#";
} else {
str += " ";
}
}
console.log(str);
这是因为您的初始 var 声明的范围。当 var 等于“”时,您的代码所做的总是连接值。这是因为 var 在 for 循环的每次迭代开始时被重置,因为行 var str = "";
在 for 循环内部。您需要做的是将初始声明移到您的 for 循环之外:
var str = "";
for (var i = 1; i <= 8; i++) {
if (i % 2 == 0)
str += "#";
else
str += " ";
console.log(str);
}
看看在你的for
循环中发生了什么:
for (var i = 1; i <= 8; i++) {
var str = ""; // set `str` to an empty string
if (i % 2 == 0) // append "#" or " " to `str`
str += "#";
else
str += " ";
console.log(str); // write `str` the console
}
{
和 }
之间的一切都会发生八次,因此您创建了一个空字符串八次并且您调用了 console.log
八次。
如果你想创建一个空字符串一次,追加"#"
或" "
八次,然后调用console.log
一次,你需要在你的for
循环之外做一些事情:
var str = "";
for (var i = 1; i <= 8; i++) {
if (i % 2 == 0) {
str += "#";
} else {
str += " ";
}
}
console.log(str);
// => # # # #
为什么这个字符串没有连接成一行?我不是“\n”断行,它不应该像“####”那样登录到控制台吗?
for (var i = 1; i <= 8; i++) {
var str = "";
if (i % 2 == 0)
str += "#";
else
str += " ";
console.log(str);
}
这是console.log函数。它在单行上记录您的表达式结果。您的代码是这样工作的:您只需记录“”,而不是 #,然后是“”,依此类推。如果你想要 # # # #,你不应该在每次迭代时都覆盖 str,而应该用所有值创建一个字符串。使用这个:
var str = "";
for (var i = 1; i <= 8; i++) {
if (i % 2 == 0) {
str += "#";
} else {
str += " ";
}
}
console.log(str);
这是因为您的初始 var 声明的范围。当 var 等于“”时,您的代码所做的总是连接值。这是因为 var 在 for 循环的每次迭代开始时被重置,因为行 var str = "";
在 for 循环内部。您需要做的是将初始声明移到您的 for 循环之外:
var str = "";
for (var i = 1; i <= 8; i++) {
if (i % 2 == 0)
str += "#";
else
str += " ";
console.log(str);
}
看看在你的for
循环中发生了什么:
for (var i = 1; i <= 8; i++) {
var str = ""; // set `str` to an empty string
if (i % 2 == 0) // append "#" or " " to `str`
str += "#";
else
str += " ";
console.log(str); // write `str` the console
}
{
和 }
之间的一切都会发生八次,因此您创建了一个空字符串八次并且您调用了 console.log
八次。
如果你想创建一个空字符串一次,追加"#"
或" "
八次,然后调用console.log
一次,你需要在你的for
循环之外做一些事情:
var str = "";
for (var i = 1; i <= 8; i++) {
if (i % 2 == 0) {
str += "#";
} else {
str += " ";
}
}
console.log(str);
// => # # # #