2013-08-25 53 views
0

我知道我們可以只使用了許多變量一個var並用逗號將它們分開jQuery的多個變量分號或逗號 - 基本

var text1 = 'abc', 
    text2 = 'bcd', 
    text3 = 'dfg' 

但如果我的變量是

var text1 = 'abc', 
    text2 = 'bcd', 
    text3 = 'dfg', 
    text4 = $(this).find('div').next('li'); 
    text5 = $(this).find('div2').next('li2'); 

我發現逗號在text4的末尾是不正確的,如果這樣的情況下,我們仍然需要用逗號分隔或分號前面的var

+4

爲什麼你認爲逗號在'text4'線是不正確的結束? – Barmar

+4

你寫的東西讓'text5'成爲一個全局變量而不是局部變量,因爲它沒有'var'聲明。 – Barmar

回答

4
var var1 = val1, 
    var2 = val2; 

相當於:

var var1 = val1; 
var var2 = val2; 

逗號一個var語句內分隔多個變量聲明,分號是用於分離多個語句。所以當你使用分號時,你必須再次使用var關鍵字,因爲你正在開始一個新的語句。

如果在新語句中使用分號並且不使用var關鍵字,則將分配全局變量,而不是聲明本地變量。

2

這是一個視覺答案; JavaScript的解釋你的代碼是這樣的:

var text1 = 'abc', 
    text2 = 'bcd', 
    text3 = 'dfg', 
    text4 = $(this).find('div').next('li'); 

text5 = $(this).find('div2').next('li2'); 

這是一個語義錯誤的一個很好的例子,這意味着你的代碼在語法上是正確的,但不能做你的意思。重要的是,JavaScript將使text5成爲一個全局變量,因爲它的聲明沒有var

更多信息請參見這兩個SO問題:

  1. What is the purpose of the var keyword and when to use it (or omit it)?
  2. Declaring Multiple Variables in JavaScript