如何在 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);
众所周知,一般来说,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);