Come funziona + = (più uguale)?

Sono un po ‘confuso con il segno + =. Come funziona?

  1. 1 += 2 // è uguale?

  2. e questo

     var data = [1,2,3,4,5]; var sum = 0; data.forEach(function(value) { sum += value; }); sum = ? 

1 += 2 è un errore di syntax (il lato sinistro deve essere una variabile).

x += y è una scorciatoia per x = x + y .

1) 1 + = 2 // è uguale?

Questo è sintatticamente non valido. Il lato sinistro deve essere una variabile. Per esempio.

 var mynum = 1; mynum += 2; // now mynum is 3. 

mynum += 2; è solo una forma breve per mynum = mynum + 2;

2)

 var data = [1,2,3,4,5]; var sum = 0; data.forEach(function(value) { sum += value; }); 

Sum è ora 15. Srotolare il forEach abbiamo:

 var sum = 0; sum += 1; // sum is 1 sum += 2; // sum is 3 sum += 3; // sum is 6 sum += 4; // sum is 10 sum += 5; // sum is 15 

Questo è solo un breve modulo per:

 sum = sum + value; 

+= in JavaScript (così come in molte altre lingue) aggiunge il lato destro alla variabile sul lato sinistro, memorizzando il risultato in quella variabile. Quindi il tuo esempio di 1 +=2 non ha senso. Ecco un esempio:

 var x = 5; x += 4; // x now equals 9, same as writing x = x + 4; x -= 3; // x now equals 6, same as writing x = x - 3; x *= 2; // x now equals 12, same as writing x = x * 2; x /= 3; // x now equals 4, same as writing x = x / 3; 

Nel tuo esempio specifico il ciclo sum i numeri nei data dell’array.

+= operatore è usato per concatenare stringhe o aggiungere numeri.

Aumenterà la tua variabile sum con l’importo accanto ad essa.

 var sum = 0; var valueAdded = 5; sum += valueAdded; 

sum = 5

Devi sapere che:

  • La syntax degli operatori di assegnazione è: variable = expression;

    Per questo motivo 1 += 2 -> 1 = 1 + 2 non è una syntax valida poiché l’operando di sinistra non è una variabile. L’errore in questo caso è ReferenceError: invalid assignment left-hand side .

  • x += y è la forma abbreviata di x = x + y , dove x è la variabile e x + y l’espressione.

    Il risultato della sum è 15 .

       sum = 0;
       sum = sum + 1;  // 1
       sum = sum + 2;  // 3
       sum = sum + 3;  // 6
       sum = sum + 4;  // 10
       sum = sum + 5;  // 15

Le altre scorciatoie per l’ operatore di assegnazione funzionano allo stesso modo (relativamente alle operazioni standard a cui si riferiscono). .

… e non dimenticare cosa succede quando mischi i tipi:

 x = 127; x += " hours " // x is now a string: "127 hours " x += 1 === 0; // x is still a string: "127 hours false" 

a += b è una scorciatoia per a = a +b che significa:

1) 1 += 2 // non verrà compilato

2) 15

Come tutti hanno detto sopra

 var str = "foo" str += " bar" console.log(str) //will now give you "foo bar" 

Controlla anche questo https://www.sitepoint.com/shorthand-javascript-techniques/

è solo una notazione abbreviata nella maggior parte delle lingue. Ciò significa che

x = x + 1;

possiamo fare la stessa operazione per x- = 1, x * = 1, x / = 1 ; che significa

> x = x-1; x = x * 1; x = x / 1;

x+=y è una scorciatoia in molte lingue per set x to x + y . La sum sarà, come suggerisce il nome, la sum dei numeri nei data .

NO 1+=2!=2 significa che stai per aggiungere 1+2 . Ma questo ti darà un errore di syntax. Supponiamo che una variabile sia int type a=1 ; quindi a+=2 ; significa a=1+2 ; e aumentare il valore di a da 1 a 3.