var temp = temp || {};
上記の構文では、temp がまだ存在しない場合は作成されます。それ以外の場合は、既に作成されている変数を参照します。これがどのように機能するのか、私は興味があります。temp が存在するがオブジェクトを作成している場合、式の右側は true を返す必要があると思います。これはどのように作動しますか。どんな説明でも役に立ちます。
var temp = temp || {};
上記の構文では、temp がまだ存在しない場合は作成されます。それ以外の場合は、既に作成されている変数を参照します。これがどのように機能するのか、私は興味があります。temp が存在するがオブジェクトを作成している場合、式の右側は true を返す必要があると思います。これはどのように作動しますか。どんな説明でも役に立ちます。
a || bは を評価する論理 OR 演算子を使用し、が真であるa場合aは に評価されaます。それ以外の場合bは返されます。
tempまだ宣言されていない場合はvar temp、それが使用されるまでに「すでに」宣言されていtemp = ""ます (変数宣言は JavaScript では関数全体です)。すでに宣言されている場合は問題ありません。再宣言は JavaScript で有効であり、変数の既存の値には影響しません。
ここでの「真実」とは「嘘ではない」という意味です。JavaScript で間違っていること:
false0(さらに-0言えば)NaN""nullundefinedtemp を宣言して式の反対側で使用するため、その値は未定義です。たとえば、それが未定義であると言うvar temp = temp;とわかりますtemp。
式||(OR) を使用しているため、ブール式です。tempは前に宣言されていないため、undefinedこちら側は「false」になり、戻りは反対側になります。
その単純化されたバージョンへvar temp = (temp == undefined || temp == false) ? {} : temp;
これを使用して、変数がjavascriptに存在するかどうかを確認できます。
if (typeof temp === 'undefined') {
// temp is undefined
//create variable temp
// your code here
}
else{
//temp exists
//your code here
}