我在網頁中有多個腳本標記。在多個腳本標記中使用相同的變量名會導致變量從上面的腳本標記中獲取錯誤值的問題?多個腳本標記變量衝突?
<script type="text/javascript">
var current = 0;
</script>
<script type="text/javascript">
var current = 1;
</script>
第一次當前會導致第二次發生的問題嗎?
我在網頁中有多個腳本標記。在多個腳本標記中使用相同的變量名會導致變量從上面的腳本標記中獲取錯誤值的問題?多個腳本標記變量衝突?
<script type="text/javascript">
var current = 0;
</script>
<script type="text/javascript">
var current = 1;
</script>
第一次當前會導致第二次發生的問題嗎?
是的,它會。只有一個全局執行上下文,無論您在HTML標記中有多少個<script>
節點。
因此,在這個特殊的例子,current
被initialzed與0
的window
對象,然後獲取與1
覆蓋。
你永遠不會碰上如該公司在你的第二個<script>
標籤立即執行var current = 1
後的代碼將被使用current
比1
以外的值的情況。爲了提供一個非常簡單的例子:
<script type="text/javascript">
var current = 0;
alert(current); // will always alert 0
</script>
<script type="text/javascript">
var current = 1;
alert(current); // will always alert 1, never 0
</script>
這應該回答這個問題的一面「與變量從上面的腳本標籤得到錯誤的值會產生問題。」
你嘗試過檢查嗎? – Joseph 2012-03-27 22:25:56
您可以從提供的信息中獲得最佳答案,它可能會導致問題。但是,如果你只有曾經處理過的代碼(因此沒有後面調用的函數會依賴'current'的值作爲特定值),那麼你應該沒問題。 – 2012-03-27 22:28:43