javascript - For...of 循环返回意外的未定义

标签 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);
}

list.innerHTML = listItems;

//// console.log returns 1, 2, 5

//// in the DOM, i get undefined, 1, 2, 5

你可以在我的codepen中尝试一下.

感谢您的帮助。

最佳答案

这是因为 listItems 最初是未定义

let listItems;
console.log(listItems); // undefined

初始化为空字符串,或者使用数组连接:

let listItems = '';
for (let r of [1, 2, 5])
  listItems += `<li>${r}</li>`;
console.log(listItems);

listItems = [];
for (let r of [1, 2, 5])
  listItems.push(`<li>${r}</li>`);
console.log(listItems.join(''));

关于javascript - For...of 循环返回意外的未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40898985/

相关文章:

javascript - Redux:重用一个 reducer 来更新多个状态属性

javascript - 从单独的页面访问主页元素 (PageSlide)

javascript - 尝试使用 Ajax 获取图像时出现访问控制源问题

javascript - 在后台加载图像而不应用 CSS 样式

javascript - 使用 Webpack 将 Vue 暴露给全局

javascript - 字符串与键的真实性

javascript - 为什么这个正则表达式在 Angular 上的匹配仅在 Safari 上失败?

javascript 替换不工作

javascript - 如果值等于 Jquery Unfocus 字段

php - 设置 Cookie 来记住我 - PHP 与 Javascript