The first thing that the shell does it to split the line on **unquoted** spaces (metacharacters) into tokens. This is different than the word-splitting done after expansions in that the IFS value is **not** used. The characters used for initial token splitting are fixed as metacharacters. All this will make `var` contain `Hello` (sometimes for a brief moment):

 var=Hello echo World # Space
 var=Hello;echo World # Semicolon
 var=Hello	echo World # Tab
 var=Hello&echo World # Ampersand

Also, for this initial token splitting, the right side of an assignment is considered quoted. 
All this are equivalent:

 var="Hello World"
 var='Hello World'
 var=Hello\ World
 
Note that the only character that **must** be quoted is the white space. Even if IFS is modified.

Of course, inside double quotes several expansions are allowed:

 var=~"/" ; var=~/ tilde expansion (outside quotes)
 var="$PWD" ; var=$PWD parameter and variable expansion
 var="$(pwd)" ; var=$(pwd) command substitution
 var="$((2+3))" ; var=$((2+3)) arithmetic expansion
 var="!$" ; var=!$ history substitution

All pairs above are equivalent (the same). 

**None** of the pairs will work the same inside single quotes (or with some back-quotes), example:

 var='$PWD' ; var=\$PWD

Also, this are **not** equivalent:

 var="( Hello World )" ; var=( Hello World )

The parenthesis trigger an array assignment

---
So, all this are equivalent:

 var=hi
 var="hi"
 var='hi'
 var=\hi
 var=h\i
 var=\h\i

taking into account the special conditions given previously.