Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
添加Javascript变量值_Javascript_Jquery - Fatal编程技术网

添加Javascript变量值

添加Javascript变量值,javascript,jquery,Javascript,Jquery,下面是一个非常简单的例子 目标:我希望monkeyAge和slothAge都等于15。 问题在于,当计算第二个变量slothAge时,它会采用新的firstDataPoint,而不是预期的原始值 正确的处理方法是什么 var firstDataPoint = 10; var secondDataPoint = 5; var monkeyAge = firstDataPoint += secondDataPoint; var slothAge = firstDa

下面是一个非常简单的例子

目标:我希望monkeyAge和slothAge都等于15。

问题在于,当计算第二个变量slothAge时,它会采用新的firstDataPoint,而不是预期的原始值

正确的处理方法是什么

    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;