オンラインソースコードを見ると、いくつかのソースファイルの一番上でこれに出会いました。
_var FOO = FOO || {};
FOO.Bar = …;
_
しかし、私は_|| {}
_が何をするのか分かりません。
私は_{}
_がnew Object()
と等しいことを知っており、_||
_は「既に存在する場合はその値を使用し、そうでない場合は新しいオブジェクトを使用する」などの目的に使用すると思います.
これがソースファイルの先頭に表示されるのはなぜですか?
var AEROTWIST = AEROTWIST || {};
基本的に、この行はAEROTWIST
変数をAEROTWIST
変数の値に設定するか、空のオブジェクトに設定することを言っています。
二重パイプ||
はORステートメントであり、ORの2番目の部分は、最初の部分がfalseを返す場合にのみ実行されます。
したがって、AEROTWIST
に既に値がある場合、その値として保持されますが、以前に設定されていない場合は、空のオブジェクトとして設定されます。
基本的にこれを言うのと同じです:
if(!AEROTWIST) {var AEROTWIST={};}
お役に立てば幸いです。
||のもう1つの一般的な使用法未定義の関数パラメータのデフォルト値も設定します:
function display(a) {
a = a || 'default'; // here we set the default value of a to be 'default'
console.log(a);
}
// we call display without providing a parameter
display(); // this will log 'default'
display('test'); // this will log 'test' to the console
通常、他のプログラミングの同等物は次のとおりです。
function display(a = 'default') {
// ...
}
AEROTWISTに値がないか、nullまたは未定義の場合、新しいAEROTWISTに割り当てられる値は{}(空のオブジェクト)
||
演算子は2つの値を取ります。
a || b
Aが truthy の場合、a
を返します。それ以外の場合は、b
を返します。
偽の値はnull
、undefined
、0
、""
、NaN
およびfalse
。真実の値は他のすべてです。
したがって、a
が設定されていない場合(undefined
である場合)、b
を返します。