Javascript +;=(加上同等)工作?
我对+=符号有点困惑。它是如何工作的Javascript +;=(加上同等)工作?,javascript,Javascript,我对+=符号有点困惑。它是如何工作的 1+=2//等于 还有这个 var data = [1,2,3,4,5]; var sum = 0; data.forEach(function(value) { sum += value; }); sum = ? 这只是以下内容的一个简短形式: sum = sum + value; 1+=2是语法错误(左侧必须是变量) x+=y是x=x+y的缩写x+=y在许多语言中是将x设置为x+y的缩写。正如其名称所暗示的那样,总和将是数据a+=b是a=
1+=2
//等于var data = [1,2,3,4,5];
var sum = 0;
data.forEach(function(value) {
sum += value;
});
sum = ?
这只是以下内容的一个简短形式:
sum = sum + value;
1+=2
是语法错误(左侧必须是变量)
x+=y
是x=x+y
的缩写x+=y
在许多语言中是将x设置为x+y
的缩写。正如其名称所暗示的那样,总和将是数据
a+=b
是a=a+b
的缩写,意思是:
1) 1+=2
//无法编译
2) 15运算符用于连接字符串或添加数字 它将用它旁边的金额递增sum变量
var sum = 0;
var valueAdded = 5;
sum += valueAdded;
总和=5
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;
在您的特定示例中,循环将数组中的数字求和数据1)1+=2//equals
这在语法上是无效的。左侧必须是一个变量。比如说
var mynum = 1;
mynum += 2;
// now mynum is 3.
mynum+=2
只是mynum=mynum+2的缩写形式代码>
(二)
总数现在是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
否<代码>1+=2=2
它的意思是
您将添加1+2
。
但是这会给你一个语法错误。
假设变量是int类型inta=1
;
然后
a+=2
;表示a=1+2
;将a的值从1增加到3。您必须知道:
- 赋值运算符语法为:
variable=expression代码>
因此,1+=2
->1=1+2
不是有效语法,因为左操作数不是变量。这种情况下的错误是ReferenceError:左侧的赋值无效
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)//现在将为您提供“foo bar”
,这在大多数语言中只是一种简写符号
x=x+1
我们可以对x-=1,x*=1,x/=1执行相同的操作;
也就是说
>x=x-1;x=x*1;x=x/1;
1+=2
不会抛出错误,但您仍然不应该这样做。在这个语句中,您基本上是说“将1设置为等于1+2”,但1是一个常量,不是类型为:number
或:string
的变量,因此它可能不会做任何事情。说
var myVariable=1
myVariable+=2
console.log(myVariable)
将3
记录到控制台,因为x+=y
只是x=x+y
var数据=[1,2,3,4,5]
var和
data.forEach(函数(值){
总和+=值
})
将使sum
=15,因为:
sum += 1 //sum = 1
sum += 2 //sum = 3
sum += 3 //sum = 6
sum += 4 //sum = 10
sum += 5 //sum = 15
x+=1
只是x=x+1
它也可用于字符串:
var string = "foo"
string += "bar"
它连接字符串但添加数字。谢谢,Paul。连接可能不是最好的术语;)那么,这会使+=
=
与php相关吗?1+=2
1等于3。不是那么大的问题。但1-=1代码>使布尔表达式成为令人头疼的问题!很明显,您可以在浏览器的JavaScript控制台中尝试:在forEach之后,sum是15。不知道您可以使用该值内联执行此操作。根据JavaScript:198.51-=84.4,结果是114.10999999999,这是不正确的。@JpHouten您的评论并不是关于这个答案的,但即使如此,我还是觉得我应该对此作出回应。首先,你的意思是-,不是-,因为你198.51-=84.4只是给出了一个错误。但大多数情况下,这不是一个bug。这只是计算机用二进制而不是十进制来表示数字的结果,像198.51和84.4这样的数字不能用二进制来精确表示,但必须四舍五入。这是浮点数的标准部分。如果你需要精确的(而不是近似的)十进制计算,你应该使用定点数字。实际上x+=y等于x=x+(y)。看看这个你是说会给你“foo bar”吗?您应该在浏览器中尝试您的答案。通过小编辑修复。它以前说“不”,而不是“现在”,这正是马克的回答。
sum += 1 //sum = 1
sum += 2 //sum = 3
sum += 3 //sum = 6
sum += 4 //sum = 10
sum += 5 //sum = 15
var string = "foo"
string += "bar"