2013-05-19 196 views
1

有時我需要更換一個變量值到另一個變量已經被定義

所以我用這個方法

var $$test = "First", 
    $$test = "Second"; 

代碼工作很好,但我使用的jsfiddle JSHint按鈕,可以檢查JavaScript的任何錯誤(它幫了我很多)

,但我得到這個錯誤「$$測試」已定義

enter image description here

那麼什麼是重新定義任何變量

謝謝:)

回答

6

你得到的錯誤,因爲你聲明相同的變量兩次。

var a = foo, a = bar; 

是一樣的:

var a = foo; 
var a = bar; 

只是破壞你的代碼在兩行,你不會得到該警告。就像這樣:

var a = foo; 
a = bar; 

另請注意,如果您聲明一個變量用一個值,然後之後你改變它的值,第一行是一個noop

+0

檢查現在http://jsfiddle.net/9CdJN/1/相同erorr –

+0

帶走了var http://jsfiddle.net/9CdJN/2/ –

+1

@JimmyTodd - 你的小提琴適合我,在控制檯中沒有錯誤 - 或者我只是因爲頁面顯示「檢查控制檯」而不是「按下JSHint按鈕」而感到困惑?如果我這樣做,它_does_給出一個JSHint警告,因爲你仍然聲明兩次相同的變量。 – nnnnnn

3

不要使用逗號的理想方法。你應該重新定義它作爲一個新的聲明:

var $$test = 'First'; 
$$test = 'Second'; 
0

這段代碼試圖定義兩個名爲$$ test的變量。他們需要有不俗的名字。 嘗試使用$$測試1和$$ test2的

更新您http://jsfiddle.net/9CdJN/2/

(function($){ 

var $$test = "First"; 
$$test = "Second"; 

console.log($$test); 

})(jQuery); 
+0

我需要重新定義相同的變量 –

+0

編輯我的答案 –

+1

@JimmyTodd - 你不會試圖「重新定義」相同的變量,你試圖改變變量的值。 – nnnnnn

0

的問題是,你有一個逗號,在第一線,而不是一個分號;結束。

每個Javascript語句以分號結尾。您可以使用一個逗號將它們全部分開,並使用一個var來定義多個變量。

var var1=1, var2=2, var3=3; 

相同

var var1=1, 
    var2=2, 
    var3=3; 

因爲你必須在第一行一個逗號,瀏覽器認爲您聲明具有相同名稱的兩個不同的變量。要修復它,只是把它改成這樣:

var $$test = "First"; 
    $$test = "Second";