J'allais commencer à utiliser === (triple égal, comparaison stricte) tout le temps lors de la comparaison des valeurs de chaîne, mais maintenant je trouve que
"foo" === new String("foo")
est faux, et pareil avec ceci:
var f = "foo", g = new String("foo");
f === g; // false
Bien sûr:
f == g; // true
Il est donc recommandé de toujours utiliser == pour la comparaison de chaînes, ou de toujours convertir les variables en chaînes avant de comparer?
new String
(Complètement inutile) plutôt que d'utiliser==
new String("foo")
en Javascript en premier lieu? Je n'ai jamais vu un tel code dans le code, c'est-à-dire jQuery ...
String(obj)
pour convertir une chaîne encadrée en primitive une fois que vous avez reçu votre paramètre "chaîne". ("foo" === String(new String("foo"))) === true
foo
c'est la chaîne pure etnew String("foo")
est la chaîne d'objet