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 で間違っていること:
false
0
(さらに-0
言えば)NaN
""
null
undefined
temp を宣言して式の反対側で使用するため、その値は未定義です。たとえば、それが未定義であると言う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
}