Within " " $-expressions are evaluated, but it protects from further expansions.
You should use it in command arguments
You can use it in assignments
but there is no effect, because in assignments there are no further expansions.
Within ' ' there are never any evaluations or expansions. (Unless you put an
eval keyword in front.)