如何在 JavaScript 中执行内联 for 循环,该循环未连接到变量

How to do an inline for loop in JavaScript, that's not connected to a variable

众所周知,一般来说,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" 关键字,但是 .

主要是,是否可以在 JavaScript 中制作一个常规的 for 循环内联?

for 是一个语句而不是表达式,您不能在变量赋值的右侧使用它。您也不必使用 void。只需简单地使用循环

for(var i = 0; i < 4; i++) console.log(i)

这里有一行IIFE(立即调用的函数表达式):

let newString = (() => {let concatenatedString = ''; for (let i = 0; i < 1000; i++) {concatenatedString+= i;} return concatenatedString;})();

console.log(newString);


关于 IIFE 的进一步阅读:

为什么您特别需要一行中的 for 循环?它看起来不太可读。为什么不在函数中扭曲你的 for 循环?

function functionName(number) {
    let temp = 0;
    let i = 0;

    for (i; i < number; i++) {
        temp += i;
    }

    return temp;
}

const value = functionName(5);

console.log(value);