veo que editastes el codigo. lo que sucede es que si no haces los valores css como string, javascript lo interpreta como una expresion. y en este caso, una expresion tal
#FFFFFF genera error porque no se considera una expresion o sintaxis correcta. o sea, javascript considera que
FFFFFF podria ser una variable y
# es otra cosa, pero como esa "otra cosa" no existe en el lenguaje, entonces se genera error. de ahi que, en javascript, los valores css siempre se escriben en forma de string.
en cuanto al
div, javascript lo considera una variable. si esa variable no esta definida, entonces genera error. en todo caso,
createElement espera como valor un string que indique el nombre de un elemento.
Código:
// es valido, porque la variable div contiene el string "div";
var div = "div";
document.createElement(div);
// pero si solo tuvieras esto, no seria valido porque no existe la variable div;
document.createElement(div);