2
var temp = temp || {};

上記の構文では、temp がまだ存在しない場合は作成されます。それ以外の場合は、既に作成されている変数を参照します。これがどのように機能するのか、私は興味があります。temp が存在するがオブジェクトを作成している場合、式の右側は true を返す必要があると思います。これはどのように作動しますか。どんな説明でも役に立ちます。

4

3 に答える 3

5

a || bは を評価する論理 OR 演算子を使用し、が真であるa場合aは に評価されaます。それ以外の場合bは返されます。

tempまだ宣言されていない場合はvar temp、それが使用されるまでに「すでに」宣言されていtemp = ""ます (変数宣言は JavaScript では関数全体です)。すでに宣言されている場合は問題ありませ。再宣言は JavaScript で有効であり、変数の既存の値には影響しません。

ここでの「真実」とは「嘘ではない」という意味です。JavaScript で間違っていること:

  • false
  • 0(さらに-0言えば)
  • NaN
  • ""
  • null
  • undefined
于 2013-09-01T03:05:24.967 に答える
2

temp を宣言して式の反対側で使用するため、その値は未定義です。たとえば、それが未定義であると言うvar temp = temp;とわかりますtemp

||(OR) を使用しているため、ブール式です。tempは前に宣言されていないため、undefinedこちら側は「false」になり、戻りは反対側になります。

その単純化されたバージョンへvar temp = (temp == undefined || temp == false) ? {} : temp;

于 2013-09-01T03:20:22.070 に答える
0

これを使用して、変数がjavascriptに存在するかどうかを確認できます。

if (typeof temp === 'undefined') {
// temp is undefined
//create variable temp
// your code here
}
else{
//temp exists
//your code here
}
于 2013-09-01T04:43:42.837 に答える