Hay un montón de tutoriales para ==
y ===
así que por favor no me guiará a un tutorial básico, mi pregunta es un poco más específico:¿Cómo funciona la igualdad de cadenas en JavaScript?
Por ejemplo http://www.w3schools.com/jsref/jsref_obj_string.asp establece que:
Sintaxis:
var txt = new String("string");
// or more simply:
var txt = "string";
Bueno, pero ¿qué tal esto?
alert(new String("a") == new String("a")); // false
alert("a" == "a"); // true
var a = new String("a");
var b = new String("a");
alert(a == b); // false
var c = "a";
var d = "a";
alert(c == d); // true
alert(c === d); // true
alert (a === c); // false
Por supuesto, nadie llama new String()
todos modos, pero es algo acerca de la igualdad de fallar debido new String()
se trata como un objeto no como una cadena?
Y, por supuesto, W3Schools no es la fuente más confiable, pero esperaba que todas las alertas anteriores dijeran verdadero.
Explique.
Una mejor referencia es https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String –
Este comportamiento ya se ha explicado, pero una pregunta de seguimiento podría ser "¿Por qué alguna vez uso 'new String()'? " – nnnnnn
solo un pequeño comentario: http://w3fools.com/ – RoelF