gpt4 book ai didi

javascript - 尝试理解带有三元运算符的 JavaScript For 循环

转载 作者:行者123 更新时间:2023-12-03 03:07:46 24 4
gpt4 key购买 nike

var res = '\n', i, j;
for (i = 1; i <= 7; i++) {
for (j = 1; j <= 15; j++) {
res += (i * j) % 8 ? ' ' : '*';
}
res += '\n';
}
alert(res);

(从面向对象的 JavaScript 复制/粘贴 - 第三版,Ved Antani、Stoyan Stefanov)

尝试理解这个循环。我明白发生了什么,但不明白为什么。

res += (i * j) % 8 ? ' ' : '*';

我正在按如下方式读取三元运算符。

  • bool 表达式:(i * j) % 8
  • 如果 true 则执行:将空格与 res 连接起来
  • 如果 false 则执行:将星号与 res 连接起来

第一次迭代时,当涉及到内循环时,仅输出“*”,当模为0时,其他时间都输出“”。

为什么要这样做?

另外,不明白第一行。下面在做什么?

var res = '\n', i, j;  

将变量 res 分配给 3 个值的目的是什么。

在控制台中,没有这行代码也可以正常工作。

最佳答案

var res = '\n', i, j;  

这是三个变量,以令人困惑的方式写下来:

var res = '\n'; // newline
var i;
var j;

一行:

var i, j, res = '\n';  
<小时/>

脚本运行正常。我用破折号替换了空格,这就是结果:

-------*-------
---*---*---*---
-------*-------
-*-*-*-*-*-*-*-
-------*-------
---*---*---*---
-------*-------

如果 i=1j=i,则 i*j%8 不为 0,因此为 true,这将导致短跑。第一行,您会看到七个破折号,然后是一个 * 等。

关于javascript - 尝试理解带有三元运算符的 JavaScript For 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47093009/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com