使用增量运算符和document.write函数

时间:2013-04-18 02:26:03

标签: javascript

众所周知:

  

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()函数?

2 个答案:

答案 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?问题,因为5ii=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规范)。