众所周知,JavaScript 通常允许以下格式的内联 for 循环:
someArray.forEach(x => x.doSomething());
但是,当想要使用常规的 for 循环内联作为一个语句时,就会发生错误。例如:
void(for(var i = 0; i < 0; i++) console.log(i));
尽管这在技术上是一行,但由于它以字面上是内联的格式使用,并且被认为是一个语句,它给出了错误:
Uncaught SyntaxError: Unexpected token 'for'
为什么要这样做?简单:为了在一行中生成一个数组或字符串,例如:
var newString = (let k = "", for(let i = 0; i < 1000; i++) k+= i, k);
但这给出了一个明显的
Uncaught SyntaxError: Unexpected identifier
错误,因为“let”关键字,但是 that's a different question .
主要是,是否可以在 JavaScript 中进行常规的 for 循环内联?
最佳答案
这是单行 IIFE (立即调用函数表达式):
let newString = (() => {let concatenatedString = ''; for (let i = 0; i < 1000; i++) {concatenatedString+= i;} return concatenatedString;})();
console.log(newString);
关于 IIFE 的进一步阅读:
关于javascript - 如何在 JavaScript 中执行内联 for 循环,该循环未连接到变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61078448/