通常、||この場合の意味は次のとおりです。||この訴訟の意味ですか?
function getCharCount (e,s) {
s = s || ",";
return getInnerText(e).split(s).length;
}
通常、||この場合の意味は次のとおりです。||この訴訟の意味ですか?
function getCharCount (e,s) {
s = s || ",";
return getInnerText(e).split(s).length;
}
つまり、sがnullの場合は値「、」が割り当てられます。 sがnullでない場合、値は保持されます。
この回答は参考になりました他のものと同じように。不当なdownvotes、おかげでありがとう! –
s = s || ","
これは、デフォルトのパラメータの選択肢となっています。 s
が「falsey」s
だから","
に設定されている場合はsが""
かundefined
であれば、それは便利なデフォルトを持つことになります。 、それは仕方がJavaScriptでオプションのパラメータを定義すること","
s
はs
ある、またはs
が定義されていない場合(あなたは、関数呼び出しの引数を渡しませんでした)。
あなたが唯一の1つのparamでこの関数を呼び出すことができます...
だ
は時々、あなたは変数がそうあなたが値を持っている必要があなたの自己を言っている値 をahveするかどう知りません。
値がない場合(null)、独自のデフォルト値があります。
あなたは
s = s || ",";
を書いたものsが値を持っているかどうかを私は知らないことが、そう「」値を入れない場合。
Raynosが答えを提供しましたが、これを説明するために追加する必要があります。
s = s || ",";
s
は、undefined, null, 0, false, NaN, ""
、などなどあらゆるfalsey値であれば...、そしてs
は","
に初期化されます。
これは、オプションのパラメータを関数に初期化したり、パラメータに少なくとも初期値があることを保証するのに非常に役立ちます。このコンストラクトは、パラメータs
の誤った値を意図的に渡すことを禁止するため、その使用方法を非常に注意する必要があります。
の値に空の文字列を渡すことはできません。","
に変更されるためです。これはこの機能では問題ありませんが、他の機能にはない可能性があります。他のタイプの関数では、許容値であるかもしれないfalse
を渡すことはできません。
1しか渡されないパラメータから保護したい場合は、あなたが明示的に未定義のためにテストし、他のfalsey値を渡すことができます。このようなものを使用する必要があります:
s = typeof s != "undefined" ? s : ','; // if s is undefined, initialize
たりしたい場合はそれが文字列だったことを確認し、空の文字列を許可するには、次のように使用できます。
s = typeof s == "string" ? s : ','; // if s not a string, initalize
誰かが明確にしてくださいことができます。sがヌルであれば、カンマとsがヌルか ""でカンマの場合には別のものがアップリンクされていると答えたupvoted回答があります。 –
@バリー:人々は矢印をクリックするのが大好きだからです!コメントと組み合わせたレイノスの答えが最も正しい。賢明な用語は、論理的または論理的ではなく合体型の演算子になります。 – Marc
[(x = x || y)は何を意味するのですか?](http://stackoverflow.com/questions/2802055/what-does-this-construct-xxy-mean) –