2016-07-24 85 views
0

在JavaScript atleast聲明是必須在使用變量之前,但在下面的代碼中使用for循環變量我沒有聲明和代碼工作正常.....爲什麼? ?爲什麼循環不需要變量聲明

<body> 
    <form> 
    <input type="button" onclick="multi(a)" value="click here" > 
    </form> 


    <script type="text/javascript" language="javascript"> 
    <!-- 
      var a; 
      function multi(a){ 
      a=parseInt(prompt("Enter a value","your value goes here")); 
       for(i=1;i<=10;i++){ 
       document.write(a+"X"+i+"="+a*i+"<br />"); 
      } 
    } 
    --> 
    </script> 
    </body> 
+0

'for'循環中的'i'有點不尋常,因爲通常它只用於循環中。在其他情況下,您需要根據正常範圍規則聲明和使用變量。 – Toby

+1

它**應該**已經使用var來聲明'i'。 @Toby不,在編寫的代碼中,'i'是一個全局變量。 – Pointy

+1

或'let'取決於您想要支持的瀏覽器的年齡。 – Quentin

回答

1

當你沒有從事strict mode,您可以通過將值分配給它聲明一個變量(作爲一個全球性的)。它只讀取一個拋出ReferenceError的未聲明的變量。

雖然這並不被認爲是好的做法,這就是爲什麼它被嚴格禁止的原因。

相關問題