There is no difference between $varand ${var}, and there is no difference between "$var"and "${var}", except in some cases the analyzer cannot determine your intention when the user uses previous versions, Consider:
foo=hello
echo "$fooworld"
echo "${foo}world"
The first echodoes not print anything because the variable is fooworldnot defined. The second one prints helloworldbecause the shell was able to determine that you were referring to the variable foo.
The difference between $varand "$var"is that markup without quotes is calculated by the shell after expansion. In this way:
var='ls /'
$var
/, ,
var='ls /'
"$var"
ls /: No such file or directory, ls /.