What does the *= or -=operator mean?

As an example, the tutorial has this code:

milesTraveled = endingMileage -= startingMileage;
amountOwed = milesTraveled *= reimburseRate;

Why are *= and -= used instead of the usual multiplication and subtraction operators? Are they any different?

Author: Kromster, 2018-07-25

2 answers

Why are multiplication and subtraction operators used instead of the usual ones? *= and -=.

You can read them literally "multiply and assign" and "subtract and assign". That is, after performing these operations, not only the values of the variables milesTraveled and amountOwed, but also the variable endingMileage will change.

Example with the specified operations:

let startingMileage;
let endingMileage;
let milesTraveled;
let amountOwed;
let reimburseRate;

startingMileage = 1;
endingMileage = 3;
reimburseRate = 10;

milesTraveled = endingMileage -= startingMileage;
console.log("milesTraveled:" + milesTraveled );
amountOwed = milesTraveled *= reimburseRate;

console.log("startingMileage:" + startingMileage + 
  ", endingMileage:" + endingMileage +
  ", milesTraveled:" + milesTraveled +
  ", amountOwed:" + amountOwed);
 2
Author: , 2018-07-25 11:30:35

Compound operators are "expanded" as follows:

milesTraveled = endingMileage -= startingMileage;

Converted to

milesTraveled = (endingMileage = endingMileage - startingMileage);

And expand the brackets

endingMileage = endingMileage - startingMileage; 
milesTraveled = endingMileage;
milesTraveled = milesTraveled * reimburseRate;
amountOwed = milesTraveled;

Meaning - a shorter entry.

 2
Author: nick_n_a, 2018-07-25 11:31:43