我对+=符号有点困惑。它是如何工作的?
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
中的数字求和。
+=
运算符用于连接字符串或相加数字。
它会将你的 sum 变量增加与其相邻的值。
var sum = 0;
var valueAdded = 5;
sum += valueAdded;
sum = 5
+=
= .=
与 PHP 有关? - Mark Carpenter Jr你需要知道:
赋值运算符的语法是: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"
正如大家上面所说的那样
var str = "foo"
str += " bar"
console.log(str) //will now give you "foo bar"
请查看这个链接 https://www.sitepoint.com/shorthand-javascript-techniques/,它涉及到简写JavaScript技巧。
a += b
是 a = a + b
的简写,意思是:
1)1 += 2
// 无法编译
2)15
在大多数编程语言中,那只是一种简写符号。它的意思是:
x=x+1;
我们可以对 x-=1,x*=1,x/=1 做同样的操作,也就是:
1 += 2
后,1 的值变为了3。这并不是什么大问题。但是1 -= 1;
会让布尔表达式变得非常麻烦! - SF.