3
A
答えて
3
これはブール値を返すために含む関数を起こしreturn
文です。
- 変数
year
の値を引数として関数dihy()
を呼び出します。 - 戻り値が
353
または383
(に存在するプロパティの名前で、オブジェクトリテラルが)であるかどうかをチェックします。プロパティが持つ価値は重要ではありません。オブジェクト内に存在する必要があります。 (つまり、1
は任意の値です) - この場合、関数は
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
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]
動作しません。
次
は同等です。配列オブジェクトには、値が355の "0"と値が383の "1"の2つのキーがあります。これは、dihy()関数を呼び出した結果が0または1の場合にのみ式がtrueと評価され、 353と383ではありません。 –@Mosheいいえ、そうではありません。 –