2

私は多くの JavaScript チュートリアルを読んできましたが、今まで多くのことを知っていると思います。ですから、この言語で書かれたいくつかのスクリプトを見るのは良い考えだと思いました. 私の問題は、この行が実際に何をしているのかわからないことです:

var b=Number(ls.autofarm)||0,g,h,i,d,j; 

これらの行の基本は知っています。変数名は b で、値は Number(Is.autofarm)||0,g,h,i,j ですが、なぜ "||" 使用しています?この行が何をするのか誰かが私に説明してくれたら、それは素晴らしいことです.

4

5 に答える 5

3

||in javascript は、デフォルト値を提供する方法としてよく使用されます。最初の false でない値、または見つかった最後の値が「勝ち」です。

例えば

var a = "foo";
var b = null;
var c = a || 2;   // c == "foo". a was non-false, so we use that
var d = b || 2;   // d == 2.  b was false (null, 0, "" are all false), so we moved along

あなたの場合、

// b == Number(ls.autofarm), unless that's false/null/undefined. Then we use 0
var b = Number(ls.autofarm) || 0,
g,h,i,d,j;      // a bunch of other variables
于 2013-05-02T01:31:49.003 に答える
2

この線

var b=Number(ls.autofarm)||0,g,h,i,d,j; 

理解に役立つ場合は、2 つの部分に分割できます。

var b = Number(ls.autofarm)||0;
var g,h,i,d,j; 

2 行目は空の変数の宣言で、1 行目は b に値を宣言しています。|| の左側の値が が false の場合、右の値が使用されます。この場合、Number(ls.autofarm) が false の場合、b は 0 になります。

于 2013-05-02T01:32:34.473 に答える
0

||は論理 OR 演算子であり、JavaScript のfalsey 合体演算子でもあります。つまり、値が falsey でない場合は式の左側に評価され、それ以外の場合は右側の値に評価されます。

Falsey 値は次のとおりです: false空の文字列 ''0nullundefinedおよびNaN

は、||デフォルト値を提供するためによく使用されます。

function (someArg) {
    someArg = someArg || 'test'; // 'test' if someArg is falsey
}

複数の||演算子がある場合、次のように評価されます。

var a = 0 || '' || true || false;
  1. 最初に を評価し0 || ''、それを返します''
  2. 次に'' || true、 true を返します。
  3. この時点で、式はそれ以上評価されずtrueに返されます。

var例のように、単一のステートメントで複数の変数を宣言および初期化できることに注意してください。

var b = Number(ls.autofarm) || 0, g, h, i, d, j;

上記は、、、、変数を初期化bNumber(ls.autofarm) || 0て宣言します。ghidj

于 2013-05-02T01:47:42.547 に答える
0

これは関連する部分です (他の文字は単なる変数宣言です):

var b=Number(ls.autofarm)||0

Number(ls.autofarm)がに評価された場合true、 に割り当てられbます。と評価された場合は、代わりfalseに 0 が割り当てられbます。

于 2013-05-02T01:32:30.840 に答える