了解Javascript中空字符串的使用
我参加了一个Javascript课程,最近我们做了一个练习,我很难理解解决方案的实际工作原理 问题是: 创建一个变量n并为其赋值一个整数。 编写一个while循环,该循环构建为单个字符串,数字1到n,用逗号分隔 我们如何确保最后一个数字后面没有逗号?e、 例如,对于n=9,打印“1,2,3,4,5,6,7,8,9” 我甚至可以用逗号列出每个数字,但它们不在同一行。我的老师试图引导我解决这个问题,但她的解释对我不起作用。有没有人可以向我解释为什么使用空字符串的变量可以提供解决方案。这就是她向我展示的正确解决方案(我现在忽略了没有显示最后一个逗号的部分):了解Javascript中空字符串的使用,javascript,string,Javascript,String,我参加了一个Javascript课程,最近我们做了一个练习,我很难理解解决方案的实际工作原理 问题是: 创建一个变量n并为其赋值一个整数。 编写一个while循环,该循环构建为单个字符串,数字1到n,用逗号分隔 我们如何确保最后一个数字后面没有逗号?e、 例如,对于n=9,打印“1,2,3,4,5,6,7,8,9” 我甚至可以用逗号列出每个数字,但它们不在同一行。我的老师试图引导我解决这个问题,但她的解释对我不起作用。有没有人可以向我解释为什么使用空字符串的变量可以提供解决方案。这就是她向我展示
var n=1
var tr=“”
在JavaScript中,您可以使用+=
添加文本。例如:
x = ""
x += "Hello "
x += "World"
console.log(x); //Will print out "Hello World"
因此,通过声明一个空字符串,您可以将文本附加到它
您在代码中所做的与此相同,只是您正在执行以下操作:
x = ""
x = x + "Hello "
x = x + "World"
console.log(x); //Will print out "Hello World"
因此,您需要在开始时使用字符串减速,以便附加到它:
x = x + "Hello " //What is x? It is not declared...
x = x + "World"
console.log(x);
在JavaScript中,您可以使用+=
添加文本。例如:
x = ""
x += "Hello "
x += "World"
console.log(x); //Will print out "Hello World"
因此,通过声明一个空字符串,您可以将文本附加到它
您在代码中所做的与此相同,只是您正在执行以下操作:
x = ""
x = x + "Hello "
x = x + "World"
console.log(x); //Will print out "Hello World"
因此,您需要在开始时使用字符串减速,以便附加到它:
x = x + "Hello " //What is x? It is not declared...
x = x + "World"
console.log(x);
这是因为JS在进行字符串连接时会将值转换为字符串。tr+n+”,“
在tr
为字符串时起作用
因此,如果您还没有将其作为字符串,tr+”,“
是未定义的,
:
var tr;
tr + ','; // String(undefined) + ','
对于未定义的tr
isNaN
var tr;
var tr + n; // undefined + [number]
这是因为JS在进行字符串连接时会将值转换为字符串。tr+n+”,“
在tr
为字符串时起作用
因此,如果您还没有将其作为字符串,tr+”,“
是未定义的,
:
var tr;
tr + ','; // String(undefined) + ','
对于未定义的tr
isNaN
var tr;
var tr + n; // undefined + [number]
空字符串只是这里的输出变量,我们需要它,因为作为单个字符串构建的条件循环
要删除结尾逗号,只需检查空字符串:
var n = 1
var tr = ""
while (n <= 9) {
if(!tr){
tr += n
}
else{
tr += "," + n
}
console.log (tr)
n++
}
var n=1
var tr=“”
while(n空字符串只是这里的输出变量,我们需要它,因为作为单个字符串构建的条件循环
要删除结尾逗号,只需检查空字符串:
var n = 1
var tr = ""
while (n <= 9) {
if(!tr){
tr += n
}
else{
tr += "," + n
}
console.log (tr)
n++
}
var n=1
var tr=“”
而
我不明白空字符串如何帮助实现这个结果
Javascript以不同的方式处理不同的“类型”值
例如,如果要使用控制台.log(3+3)
,则输出将是6
如果您console.log(“+”狗“)
输出将是“狗”
那么在这种情况下会发生什么:console.log(“+3”)
由于无法将字符串添加到数字中,因此假定该数字应转换为字符串,并且输出为“the3”
好的,那么这种情况如何:console.log(''+1+2)
?应用相同的逻辑,结果是“12”
。因此空字符串迫使Javascript将运算符+
解释为字符串串联(连接字符串),而不是数字相加
最后,也是很重要的一点,连接未定义的将导致NaN
,因此重要的是,您不仅要声明变量,还要将其设置为空字符串“”
我甚至可以用逗号列出每个数字,但它们
我们不在同一条线上
我怀疑从你的代码中,你会得到这样的结果:
1,
1,2,
1,2,3,
[...]
1,2,3,4,5,6,7,8,9,
这里的要点是,您正在循环内部使用console.log()
,如果您将它移到while块之外,您将只得到最后一行
小心
问题要求设置n=9
,并将数字从1
打印到n
。因此您需要两个变量,例如i
和n
。您的while循环可能如下所示:
while(i)
我不明白空字符串如何帮助实现这个结果
Javascript以不同的方式处理不同的“类型”值
例如,如果要使用控制台.log(3+3)
,则输出将是6
如果您console.log(“+”狗“)
输出将是“狗”
那么在这种情况下会发生什么:console.log(“+3”)
由于无法将字符串添加到数字中,因此假定该数字应转换为字符串,并且输出为“the3”
好的,那么这种情况如何:console.log(''+1+2)
?应用相同的逻辑,结果是“12”
。因此空字符串迫使Javascript将运算符+
解释为字符串串联(连接字符串),而不是数字相加
最后,也是很重要的一点,连接未定义的将导致NaN
,因此重要的是,您不仅要声明变量,还要将其设置为空字符串“”
我甚至可以用逗号列出每个数字,但它们
我们不在同一条线上
我怀疑从你的代码中,你会得到这样的结果:
1,
1,2,
1,2,3,
[...]
1,2,3,4,5,6,7,8,9,
这里的要点是,您正在loo内部使用console.log()
var n = 23;
var i = 1;
var tr = "";
while (i <= n) {
tr = tr + i + ",";
i++
}
tr = tr.slice(0, -1); // remove last comma
var n = 23;
var i = 1;
var tr = "";
while (i <= n) {
tr += i + ",";
i++
}
tr = tr.slice(0, -1); // remove last comma
tr = tr.slice(0, -1);
tr = tr.slice(0, tr.length -1);