2011-01-19 149 views

回答

3

這是一個return聲明,導致含函數返回一個布爾值。

  1. 它使用變量year的值作爲參數調用函數dihy()
  2. 它檢查返回值是353還是383(存在的屬性的名稱在的對象字面值)。不管物業有什麼價值,它只需要存在於對象內。 (即,1只是一個任意值。)
  3. 如果是這樣,則函數返回true,否則返回false

JavaScript程序員有時會使用這種方法,因爲它比單獨對每個值進行覈對短,很容易編程方式添加新值覈對:

var foo = {353: 1, 383: 1}; 

function bar(year) { 
    return year in foo; 
} 

alert(bar(1955)); // false 
foo[1955] = 1; 
alert(bar(1955)); // true 

你可能想看看MDC documentation for the in operator

2

這將是true如果調用該函數dihy的說法year是對象{353:1, 383:1}false否則的關鍵。

它可以改寫這樣的例子:

var result = dihy(year); 
return result == 353 || result == 383; 
1

這是一個表達:

dihy(year) in {353:1, 383:1} 

dihy(year)函數調用返回想必一個數字值。如果該值爲353383,表達式將評估爲true,否則爲false

請注意,你的代碼是不是一種表達,而是一種說法,return聲明:

return expression; 

所以,return陳述或者返回truefalse

0

返回true或false,具體取決於dihy()返回353或383的結果(對於這兩個爲真,其他都爲false)。

這也意味着正是...是包含在此數據收集在這個函數的結果...

0

沒有理由在這裏使用一個對象,即{353: 1, 383: 1}。事實上,1的值是令人困惑的,並且可以使不熟悉的人認爲1的值在不是純粹任意的時候被返回。

以下是等價的:

dihy(year) in [353, 383] 
+0

這是行不通的。數組對象有兩個鍵:值爲355的「0」和值爲383的「1」。這意味着只有調用dihy()函數的結果爲0或1時,表達式的計算結果才爲真,而不是353和383. – 2011-01-19 21:50:32