2013-02-17 129 views

回答

5

知道它會運行 - 但它會首先讓time有一個值依賴於別的東西有運行。

例如,這將工作(即使它是不好的做法,因爲它設置在window屬性):

<script> 
time = 10; 
</script> 

<script> 
if (time<20) 
{ 
    alert("Hello World!"); 
} 
</script> 

你也覺得不可能保證你需要臨時處理任何變量保存超出其他腳本的範圍。爲了克服這個限制,你可以(而且除了在最微不足道的網站,應該)包被當場援引一個匿名函數裏面的代碼:

<script> 
(function() { 
    // your code here 
})(); 
</script> 
+0

***「這將取決於其他東西先跑了,所以時間有一個有意義的價值「***,因爲這是真實的」時間「將首先存在,它不會默認 – vol7ron 2013-02-17 20:04:51

+0

@ vol7ron這正是喬恩的意思?他的例子清楚地通過不使用'var'關鍵字來創建一個全局變量作爲窗口的屬性。此外,即使它具有'var',該代碼片段仍在全局範圍內執行,因此它仍然會成爲窗口對象的屬性。 – 2013-02-17 20:08:02

+0

@FabrícioMatté它的措辭的方式,一個有意義的值意味着該變量已經存在,並沒有一個價值的作品或不通過該條件。情況並非如此 - 「時間」不是一個甚至存在的變量(全局或本地)。你在推斷一些沒有說明的東西。 OP顯然不理解JS,並且應該知道'時間'必須同時存在(2)和(2)值<20才能通過條件。 – vol7ron 2013-02-17 20:23:17

0

如果您要訪問DOM元素,你必須將腳本標記放在頁面的末尾。或者你使用類似onload的body標籤(或JS框架中的等價函數)

0

它會運行,實現time是未定義的,產生一個錯誤並暫停操作。

0

如果 「時間」 是在服務器端seted,所以,你可以寫dinamically的onload屬性的身體是這樣的:

<body onload="functionName(<?php echo()?>)"> 

然後:

<script type="text/javascript"> 
function functionName(time) { 
     if(time < 30) { ... } 
} 
</script> 
相關問題