Iba a comenzar a usar === (triple igual, comparación estricta) todo el tiempo al comparar valores de cadena, pero ahora encuentro que
"foo" === new String("foo")
es falso, y lo mismo con esto:
var f = "foo", g = new String("foo");
f === g; // false
Por supuesto:
f == g; // true
Entonces, ¿se recomienda usar siempre == para la comparación de cadenas, o convertir siempre las variables en cadenas antes de comparar?
new String
(Completamente inútil) en lugar de usar==
new String("foo")
en Javascript en primer lugar? Nunca he visto tal código en código, es decir, jQuery ...
String(obj)
para convertir una cadena en caja a la primitiva una vez que haya recibido su parámetro "cadena". ("foo" === String(new String("foo"))) === true
foo
es la cadena pura ynew String("foo")
es la cadena del objeto