2011-12-28 95 views
1

我在我的代碼中使用此語句來緩存jquery選擇器,這是在控制檯中導致錯誤。錯誤是"Missing ; before statement"jQueryJavaScript錯誤 - 丟失;之前聲明

var $medium-image-holder = $('#image_'+itemID_value); 

其中itemID_value是一個數值。這句話是在for循環中

出於好奇心,在嘗試各種技巧來克服這個問題後,我用變量名中的下劃線替換了連字符。

var $medium_image_holder = $('#image_'+itemID_value); 

令人驚訝的是,這工作。

我想知道是否不允許在JavaScript變量名中使用連字符。至少,我不知道這件事。如果有人澄清,會非常有幫助。

+2

犯錯「 - 」是不是連字符!它不是一個有效的JavaScript標識符。 –

+0

@AhmedMasud它實際上被稱爲連字符減號字符http://en.wikipedia.org/wiki/Hyphen-minus –

+0

@PenchoIlchev我是特定於JavaScript,我不是在談論字符本身。 –

回答

1

您的陳述$medium-image-holder被解釋爲​​($ medium minus image minus holder)。

將此語句解釋爲代數表達式後,嘗試將其結果設置爲另一個語句的值(=$('#image_'+itemID_value)),這是不允許的。這是你的錯誤信息來自何處。

+0

謝謝你的解釋。但錯誤味精是錯誤的。你說什麼?你如何將錯誤信息與基礎信息相關聯? – Abhishek

+0

是的,錯誤信息有誤導性,但有時候錯誤信息就是這種情況。用Pascal或C代碼刪除分號或右括號,然後嘗試在代碼中查找錯誤。 – Residuum

4

事實上,連字符是而不是允許在變量名中。

+0

謝謝,但這顯然是一個錯字。 –

+0

你的意思是連字符? –

+0

感謝糾正,Pencho :) – mdm

3

MDC Guidelines for variable names state;

一個JavaScript標識符必須以字母,下劃線(_)或美元符號($);後續字符也可以是數字(0-9)。由於JavaScript區分大小寫,所以字母包括字符「A」到「Z」(大寫)以及字符「a」到「z」(小寫)。

+0

我知道這一點,但我解釋它,就好像我們可以使用 - 在字符串 – Abhishek

0

Java腳本不允許在變量名聲明變量名連字符只能包含字母數字或另外下劃線變量名只能用字母變量名就不能以數字開頭

歡呼

+1

$也是允許的 – Abhishek