Buffy's lovely answer shows well how two variables can refer to the same thing, but since we are in early cognitive development and working with Scratch, in which you can't pass parameters, and can't arrange for two different names to refer to the same instance/spawn, I wouldn't focus my efforts on that point yet. What matters is the idea of a holding place and mutability.
These concepts are hard to describe in a way that a 9-year-old would already know how to mentally model, but one very similar idea with which they are already familiar is the idea of a "role".
The President of the United States is currently Donald TrumpJoe Biden. (You should substitute the head executive leader of whatever country your child lives in for this example.) But a few years ago, it was Barack ObamaDonald Trump. Later, it could be Mike PenceDonald Trump again, or someone else entirely. When important things need to go to the president, they go to whoever is the president right now. They don't go to Barack ObamaDonald Trump any more, and some day, they will no longer go to Donald TrumpJoe Biden. But they always go to the President.
So, to put this into Scratch, we can make a String in scratch called President
, and then we can use the set
box to set President to "Donald"Joe Trump"Biden"
. We can then make an item in the main field that behaves as a button, that changes that variable to [insert your child's name here]
.
Now, we can create another value, called x
, and set that to a zero. Now, when you press the button, change x by 4
, and we can watch the variables change. Press the button 10 times, and the value becomes 40
.
So, what can we say about x
? Sometimes we say that x
is 40, but is it really? Or does it just hold 40?
This is the most important early understanding to arrive at when describing a variable. When we say that x
is 40, what we really mean is that x
holds 40.