众所周知:
i ++ - >首先使用i,然后增加它的值
++ i - >首先递增i然后使用我的新值
但是在下面的代码中有不同的东西
var n=5;
for(i=n;i>=1;--i)
{
console.log(i);//output:5 why?
for(j=1;j<=n;++j)
{
document.write(j);
}
document.write("\n");
}
即使我们使用的是precrement运算符,为什么vaule会在第一个循环中输出5? 另外我们在完成innerLoop之后使用了新行但它没有显示出来。这背后的原因是什么呢?它是每个循环文件上的becoz document.write()运行document.open()函数吗?如果是的话,其中上下文||条件将document.write运行document.open()函数?
答案 0 :(得分:9)
++j
中的for(j=1;j<=n;++j)
发生在循环语句执行后for
循环的末尾,因此for
之间的++j
构造没有区别{1}}和j++
。
你可以这样想到你的循环:
for(j=1;j<=n;)
{
document.write(j);
++j;
}
关于console.log(i);//output:5 why?
问题,因为5
是i
中i=n
分配的初始值。
对于document.write('/n');
,HTML忽略换行符。如果您想要一个可见的换行符,请使用<p>
或<br>
或其他一些可以创建空格的HTML结构。新行被忽略。
此HTML之间没有区别:
<span>This is some text</span>
这个带有换行符的HTML:
<span>
This is some text
</span>
答案 1 :(得分:2)
此外,我们在完成innerLoop后使用新行,但它没有显示
因为HTML中的新行是<br>
,而不是\n
这是空格,因此不会创建新行(根据HTML规范)。