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

标签 javascript arrays string for-loop inline

众所周知,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 的进一步阅读:
  • https://developer.mozilla.org/en-US/docs/Glossary/IIFE
  • 关于javascript - 如何在 JavaScript 中执行内联 for 循环,该循环未连接到变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61078448/

    相关文章:

    javascript - Grunt uglify 后,Angular Controller 模块无法实例化

    javascript - 导航栏太宽

    javascript - context.drawImage 行为异常

    arrays - 聚合 MongoDB,显示来自两个独立集合的最佳结果

    javascript - 如何使用数据库列值作为引用,使用 PHP 重新排序(或创建新的)Javascript 数组

    java - int值的格式,改变它的显示方式

    javascript - 如何调用 html 元素的触发器更改事件

    c# - 字符串拆分并将结果分布在不同的数组中

    jquery - 如何在 jQuery 中添加日期和整数

    php - PHP 中单引号和双引号字符串有什么区别?