Javascript 对于返回意外未定义的循环的类型
我正在做一个简单的for…of循环。我不明白为什么我在console.log循环输出和打印到屏幕时会得到不同的结果Javascript 对于返回意外未定义的循环的类型,javascript,Javascript,我正在做一个简单的for…of循环。我不明白为什么我在console.log循环输出和打印到屏幕时会得到不同的结果 const list = document.getElementById('list'); const results = [1, 2, 5]; let listItems; for (let r of results) { listItems = listItems + `<li>${r}</li>`; console.log(r); } li
const list = document.getElementById('list');
const results = [1, 2, 5];
let listItems;
for (let r of results) {
listItems = listItems + `<li>${r}</li>`;
console.log(r);
}
list.innerHTML = listItems;
//// console.log returns 1, 2, 5
//// in the DOM, i get undefined, 1, 2, 5
你可以在我的房间里试试
感谢您的帮助。这是因为列表项最初未定义
让我们列出项目;
console.loglistItems;//未定义因为在循环的第一次迭代中,listItems是未定义的。给它一个空字符串:
let listItems = '';
let listItems = '';
这是因为listItems是未定义的,当您向未定义的变量添加字符串“foo”时,结果是“undefinedfoo”
正确版本如下:
const list = document.getElementById('list');
const results = [1, 2, 5];
let listItems = '';
for (let r of results) {
listItems = listItems + `<li>${r}</li>`;
console.log(r);
}
list.innerHTML = listItems;
因为letItems第一次是未定义的。它只有在循环中设置后的第二次才有一个值 这样做: