添加Javascript变量值
下面是一个非常简单的例子 目标:我希望monkeyAge和slothAge都等于15。 问题在于,当计算第二个变量slothAge时,它会采用新的firstDataPoint,而不是预期的原始值 正确的处理方法是什么添加Javascript变量值,javascript,jquery,Javascript,Jquery,下面是一个非常简单的例子 目标:我希望monkeyAge和slothAge都等于15。 问题在于,当计算第二个变量slothAge时,它会采用新的firstDataPoint,而不是预期的原始值 正确的处理方法是什么 var firstDataPoint = 10; var secondDataPoint = 5; var monkeyAge = firstDataPoint += secondDataPoint; var slothAge = firstDa
var firstDataPoint = 10;
var secondDataPoint = 5;
var monkeyAge = firstDataPoint += secondDataPoint;
var slothAge = firstDataPoint += secondDataPoint;
console.log('monkey' + monkeyAge)
console.log('sloth' + slothAge)
Results:
monkeyAge = 15;
slothAge = 20;
就用这个
var monkeyAge = firstDataPoint + secondDataPoint;
var slothAge = firstDataPoint + secondDataPoint;
在你的例子中
var monkeyAge = firstDataPoint += secondDataPoint;
将设置firstDataPoint=(firstDataPoint+secondDataPoint),因此在后续代码中firstDataPoint为15。之所以会出现这种情况,是因为您刚刚在第一次计算中为firstDataPoint赋值,然后在第二次计算中再次使用了该变量(现在它的值已更改)并添加到它的第二个数据点
secondDataPoint
。所有这些都是由于+=
运算符造成的
让我们详细分析一下您的代码:
var monkeyAge=firstDataPoint+=secondDataPoint代码>:可分为两种计算:
由于firstDataPoint+=secondDataPoint
而将+=
增加firstDataPoint
,因此secondDataPoint
现在等于firstDataPoint
而不是15
5
即var monkeyAge=firstDataPoint
15
var slothAge=firstDataPoint+=secondDataPoint代码>:可以再次拆分为两个计算:
由于firstDataPoint+=secondDataPoint
而将+=
增加firstDataPoint
,因此secondDataPoint
现在等于firstDataPoint
而不是20
(甚至不是15
)5
在所有这些计算之后,它是var slothAge=firstDataPoint
20
+=
运算符的运算都可以更改第二个计算(对于槽位
),而只使用加法运算符
下面是一个例子:
让firstDataPoint=10,
第二个数据点=5,
monkeyAge=firstDataPoint+=secondDataPoint,/**monkeyAge=15和firstDataPoint=15**/
slothAge=firstDataPoint;/**等于15**/
console.log('第一次尝试:')
console.log('monkeyAge='+monkeyAge);/**产出:15**/
console.log('slothAge='+slothAge);/**产出:15**/
/**或者您可以添加“firstDataPoint”和“secondDataPoint”**/
console.log('第二次尝试:')
firstDataPoint=10,
第二个数据点=5,
monkeyAge=firstDataPoint+secondDataPoint,/**monkeyAge=15,firstDataPoint仍然=10**/
slothAge=第一个数据点+第二个数据点;/**等于15**/
console.log('monkeyAge='+monkeyAge);/**产出:15**/
console.log('slothAge='+slothAge);/**输出:15**/
var firstDataPoint=10;
var secondDataPoint=5;
/**
使用+=实际上修改初始值firstDataPoint的值,方法是将firstDataPoint+secondDataPoint的和相加,并将其存储为firstDataPoint的值。在第一次+=操作之后,firstDataPoint的值不是10,而是15。
**/
//var monkeyAge=firstDataPoint+=secondDataPoint;
var monkeyAge=firstDataPoint+secondDataPoint;
//var slothAge=firstDataPoint+=secondDataPoint;
var slothAge=第一个数据点+第二个数据点;
console.log('monkey'+monkeyAge);//15
console.log('sloth'+slothAge);//15
使用+=实际修改第一个数据点的初始值,方法是将第一个数据点+第二个数据点之和相加,并将其存储为第一个数据点的值。第一次+=操作后,firstDataPoint的值不是10,而是15
var firstDataPoint=10;
var secondDataPoint=5;
//var monkeyAge=firstDataPoint+=secondDataPoint;
var monkeyAge=firstDataPoint+secondDataPoint;
//var slothAge=firstDataPoint+=secondDataPoint;
var slothAge=第一个数据点+第二个数据点;
console.log('monkey'+monkeyAge);//15
console.log('sloth'+slothAge);//15
很有趣,谢谢。为什么“=”会把事情搞砸?因为您正在更新firstDataPoint值。基本上,你在做firstDataPoint=firstDataPoint+secondDataPoint,然后monkeyAge=firstDataPoint.@Andrewleonard我看到了我的评论。你每次都通过使用+=
-增加firstDataPoint
,也就是说你在重新分配firstDataPoint
到自身的值加上secondDataPoint
,我不确定那是你想要的…就像你用铅笔和纸做的一样
var monkeyAge = firstDataPoint += secondDataPoint;