The fact is that a variable represents a location in your computer’s memory, when your program runs.
It might help in thinking of a variable as an open box you wrote a name on. The name on the box is the variable name or “label”.
You have 2 boxes here: box “a” and box “b”.
Rather than just values, since these are small numbers in your example, imagine you have a bunch of pennies.
var a = 7
You get the box labeled “a” on the outside and you fill it with 7 pennies.
Now you have another variable you declare:
Piggybank in this case is an empty box, with the name “piggybank” written on it, but that is otherwise empty.
I say to you: “Make the contents of piggybank equal to the contents of ‘a’”
If you were doing this manually, you would probably find your box labeled “a”, and look inside of it, to find that it had 7 pennies in it.
You would then go to your source of pennies, and count out 7 and place them into the “piggybank” box.
This is an analogy to what you need to do here. The computer does all the work for you, of making the boxes and labelling them with your variable names, and duplicating values.
piggybank = a;
var a = 7
piggybank = a
I hope that helps you conceptualize the relationship between variables and locations in memory, sometimes referred to as “addresses” or “references”.