为什么我的 var returns NaN 而不是 html 结构?
why does my var returns NaN instead of an html structure?
我试图让我的 var 显示一个 html 结构,但它显示 NaN
为什么?
我尝试了很多方法,例如 console.log(rankinU),并且都有效。不知何故 html2 没有
var i = 0;
var html2 = '';
const listaRanking = document.querySelector('#lista');
db.collection("usuarios").orderBy("puntos", "desc").limit(10)
.get().then(function(querySnapshot) {
querySnapshot.forEach(function(doc) {
data = doc.data();
const rankinU = `
<div class="containerFlex">
<div class="rank">#${i+1}</div>
<div class="usuario">${data.usuario}</div>
<div class="puntosr">${data.puntos}</div>
</div>
`;
html2 =+ rankinU;
console.log(html2);
listaRanking.innerHTML = html2;
i++;
});
});
我希望它显示 Nan 以外的任何内容
这里:
html2 =+ rankinU;
您正在尝试使用复合赋值运算符,即 +=
。您上面的代码相当于:
html2 = +rankinU;
并且一元运算符 +
尝试将其参数转换为数字。 HTML 字符串不会发生这种情况,因此您会得到 NaN
。只需将运算符更改为:
html2 += rankinU;
或使用冗长的表示法 - 无论哪种方式都有效:
html2 = html2 + rankinU;
html2 =+ rankinU;
应该是 html2 += rankinU;
.
a += b
翻译成a = a + b
,对字符串有效
a =+ b
转换为 a = +b
,这对字符串无效,然后它将假设 b
是一个数字并尝试将其解析为数字(它不是,因此 NaN
分配给 a
).
我试图让我的 var 显示一个 html 结构,但它显示 NaN 为什么?
我尝试了很多方法,例如 console.log(rankinU),并且都有效。不知何故 html2 没有
var i = 0;
var html2 = '';
const listaRanking = document.querySelector('#lista');
db.collection("usuarios").orderBy("puntos", "desc").limit(10)
.get().then(function(querySnapshot) {
querySnapshot.forEach(function(doc) {
data = doc.data();
const rankinU = `
<div class="containerFlex">
<div class="rank">#${i+1}</div>
<div class="usuario">${data.usuario}</div>
<div class="puntosr">${data.puntos}</div>
</div>
`;
html2 =+ rankinU;
console.log(html2);
listaRanking.innerHTML = html2;
i++;
});
});
我希望它显示 Nan 以外的任何内容
这里:
html2 =+ rankinU;
您正在尝试使用复合赋值运算符,即 +=
。您上面的代码相当于:
html2 = +rankinU;
并且一元运算符 +
尝试将其参数转换为数字。 HTML 字符串不会发生这种情况,因此您会得到 NaN
。只需将运算符更改为:
html2 += rankinU;
或使用冗长的表示法 - 无论哪种方式都有效:
html2 = html2 + rankinU;
html2 =+ rankinU;
应该是 html2 += rankinU;
.
a += b
翻译成a = a + b
,对字符串有效a =+ b
转换为a = +b
,这对字符串无效,然后它将假设b
是一个数字并尝试将其解析为数字(它不是,因此NaN
分配给a
).