Я немного смущен знаком + =. Как это работает?
-
1 += 2
//равно? -
и этот
var data = [1,2,3,4,5]; var sum = 0; data.forEach(function(value) { sum += value; }); sum = ?
Я немного смущен знаком + =. Как это работает?
1 += 2
//равно?
и этот
var data = [1,2,3,4,5];
var sum = 0;
data.forEach(function(value) {
sum += value;
});
sum = ?
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;
sum = 5
Вы должны знать, что:
Синтаксис операторов присваивания: variable = expression;
По этой причине 1 += 2
→ 1 = 1 + 2
не является допустимым синтаксисом, так как левый операнд не является переменной. Ошибка в этом случае равна ReferenceError: invalid assignment left-hand side
.
x += y
- это короткая форма для x = x + y
, где x
- переменная и x + y
выражение.
Результат суммы 15.
sum = 0; sum = sum + 1; // 1 sum = sum + 2; // 3 sum = sum + 3; // 6 sum = sum + 4; // 10 sum = sum + 5; // 15
Другие оператор присваивания работают так же (относительно стандартных операций, на которые они ссылаются). .
... и не забывайте, что происходит при смешивании типов:
x = 127;
x += " hours "
// x is now a string: "127 hours "
x += 1 === 0;
// x is still a string: "127 hours false"
a += b
является сокращением для a = a +b
, что означает:
1) 1 += 2
//не будет компилировать
2) 15
x+=y
является сокращением на многих языках для set x to x + y
. Сумма будет, как намечено ее именем, суммой чисел в data
.
NO 1+=2!=2
это означает
вы добавите 1+2
.
Но это даст вам синтаксическую ошибку.
Предположим, что переменная имеет тип int int a=1
;
тогда
a+=2
; означает a=1+2
; и увеличить значение a от 1 до 3.
Как говорили все выше
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; что означает