2011-01-19 8 views

答えて

3

これはブール値を返すために含む関数を起こしreturn文です。

  1. 変数yearの値を引数として関数dihy()を呼び出します。
  2. 戻り値が353または383に存在するプロパティの名前で、オブジェクトリテラルが)であるかどうかをチェックします。プロパティが持つ価値は重要ではありません。オブジェクト内に存在する必要があります。 (つまり、1は任意の値です)
  3. この場合、関数はtrueを返します。それ以外の場合はfalseを返します。

    var foo = {353: 1, 383: 1}; 
    
    function bar(year) { 
        return year in foo; 
    } 
    
    alert(bar(1955)); // false 
    foo[1955] = 1; 
    alert(bar(1955)); // true 
    

    あなたが見てみたいことがあります。それは、個別に各値に対してチェックするよりも短くなって、そしてプログラムに対してチェックするために新しい値を追加するのは簡単であるため、プログラマは、時々、このアプローチを使用するJavaScript

MDC documentation for the in operator

2

引数yearを持つ関数dihyへの呼び出しは、オブジェクト{353:1, 383:1}falseそれ以外での鍵である場合、それはtrueになります。

それは、例えば、次のように書き換えることができます

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

これは式である:

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

dihy(year)関数呼び出しは、おそらく数値を返します。その値が353または383の場合、式はtrueと評価され、そうでない場合はfalseと評価されます。あなたのコードは、式が、文、return文でないことを

注:だから

return expression; 

return文はどちらかtrueまたはfalseを返します。

0

dihy()が353または383を返すという結果に応じて、trueまたはfalseを返します(これらの2つの場合はtrue、それ以外の場合はfalse)。

そして、それはまさにそれを意味します...このデータ収集に含まれるこの関数の結果です...

0

、ここではすなわち{353: 1, 383: 1}をオブジェクトを使用する理由はありません。実際、1の値は混乱しており、未検証の人には、1の値が返されていないときに戻ってきていると考えることができます。

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

動作しません。

は同等です。配列オブジェクトには、値が355の "0"と値が383の "1"の2つのキーがあります。これは、dihy()関数を呼び出した結果が0または1の場合にのみ式がtrueと評価され、 353と383ではありません。 –

+0

@Mosheいいえ、そうではありません。 –