Как работает += (плюс равно)?

Я немного запутался со знаком +=. Как это работает?

  1. 1 += 2 // равно?

  2. и это

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

12 ответов

1 += 2 является синтаксической ошибкой (левая сторона должна быть переменной).

x += y это сокращение для x = x + y,

1) 1 += 2 // равно?

Это синтаксически неверно. Левая сторона должна быть переменной. Например.

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

mynum += 2; это просто краткая форма для mynum = mynum + 2;

2)

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

Сумма теперь 15. Развертывание forEach у нас есть:

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

Это просто краткая форма для:

sum = sum + value;

+= в JavaScript (как и во многих других языках) правая часть добавляется к левой переменной, сохраняя результат в этой переменной. Ваш пример 1 +=2 поэтому не имеет смысла. Вот пример:

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;

В вашем конкретном примере цикл суммирует числа в массиве data,

+= Оператор используется для объединения строк или добавления чисел.

Это увеличит вашу переменную суммы на сумму рядом с ней.

var sum = 0;
var valueAdded = 5; 

sum += valueAdded;

сумма = 5

Вы должны знать, что:

  • Синтаксис операторов присваивания: variable = expression;

    По этой причине 1 += 2 -> 1 = 1 + 2 не является допустимым синтаксисом, так как левый операнд не является переменной. Ошибка в этом случае ReferenceError: invalid assignment left-hand side,

  • x += y это краткая форма для x = x + y, где x переменная и x + y выражение.

    Итог суммы 15.

      сумма = 0;
      сумма = сумма + 1; // 1
      сумма = сумма + 2; // 3
      сумма = сумма + 3; // 6
      сумма = сумма + 4; // 10
      сумма = сумма + 5; // 15

Другие сочетания клавиш оператора назначения работают аналогичным образом (относительно стандартных операций, к которым они относятся).,

... и не забывайте, что происходит, когда вы смешиваете типы:

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

Как все говорили выше

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

Проверьте это также https://www.sitepoint.com/shorthand-javascript-techniques/

Это просто сокращенная запись в большинстве языков. Это означает, что

х = х +1;

мы можем сделать ту же операцию для x- = 1, x * = 1, x / = 1; что значит

> х = х-1; х = х *1; х = х /1;

a += b это сокращение для a = a +b что значит:

1) 1 += 2 // не скомпилируется

2) 15

x+=y это сокращение во многих языках для set x to x + y, Сумма будет, как подсказывает ее название, сумма чисел в data,

НЕТ 1+=2!=2 это означает, что вы собираетесь добавить 1+2, Но это даст вам синтаксическую ошибку. Предположим, что переменная имеет тип int a=1; затемa+=2; средства a=1+2; и увеличить значение от 1 до 3.

x += 1 это просто сокращение для x = x + 1Его также можно использовать для строк:

var string = "foo"
string += "bar"
  1. 1 += 2не выдаст ошибку, но вы все равно не должны этого делать. В этом заявлении вы в основном говорите "установите 1 равным 1 + 2", но 1 - это постоянное число, а не переменная типа:number или :stringтак что это, вероятно, ничего не сделает. Говоря
    var myVariable = 1
    myVariable += 2
    console.log(myVariable)
    
    будет регистрировать 3 к консоли, как x += y просто сокращение от x = x + y
  2. var data = [1,2,3,4,5]
    var sum
    data.forEach(function(value){
      sum += value
    })
    
    сделал бы sum = 15, потому что:
    sum += 1 //sum = 1
    sum += 2 //sum = 3
    sum += 3 //sum = 6
    sum += 4 //sum = 10
    sum += 5 //sum = 15
    
Другие вопросы по тегам