From a55b575e8089ee6cab7c5c262a7e6db55d0e34d6 Mon Sep 17 00:00:00 2001 From: Florian Merz Date: Thu, 11 Feb 2021 14:46:50 +0100 Subject: unslug es: move --- .../index.html | 262 +++++++++++++++++++++ 1 file changed, 262 insertions(+) create mode 100644 files/es/conflicting/web/javascript/reference/operators_5a0acbbb60ea37d0fdc52e3bd4c3fae8/index.html (limited to 'files/es/conflicting/web/javascript/reference/operators_5a0acbbb60ea37d0fdc52e3bd4c3fae8') diff --git a/files/es/conflicting/web/javascript/reference/operators_5a0acbbb60ea37d0fdc52e3bd4c3fae8/index.html b/files/es/conflicting/web/javascript/reference/operators_5a0acbbb60ea37d0fdc52e3bd4c3fae8/index.html new file mode 100644 index 0000000000..8685790d2c --- /dev/null +++ b/files/es/conflicting/web/javascript/reference/operators_5a0acbbb60ea37d0fdc52e3bd4c3fae8/index.html @@ -0,0 +1,262 @@ +--- +title: Operadores de Comparación +slug: Web/JavaScript/Referencia/Operadores/Comparison_Operators +tags: + - JavaScript + - Operador + - Referencia +translation_of: Web/JavaScript/Reference/Operators +translation_of_original: Web/JavaScript/Reference/Operators/Comparison_Operators +--- +
{{jsSidebar("Operators")}}
+ +

JavaScript tiene comparaciones estrictas y de conversión de tipos. Una comparación estricta (por ejemplo, ===) solo es verdadera si los operandos son del mismo tipo y los contenidos coinciden. La comparación abstracta más comúnmente utilizada (por ejemplo, ==) convierte los operandos al mismo tipo antes de hacer la comparación. Para las comparaciones abstractas relacionales (p. Ej., <=), Los operandos primero se convierten en primitivos, y luego en el mismo tipo, antes de la comparación.

+ +

Las cadenas se comparan en base al orden lexicográfico estándar, utilizando valores Unicode.

+ +
console.log(1 == 1)
+// Esperamos True
+
+console.log("1" == 1 )
+// Esperamos true
+
+console.log( 1 === 1)
+// Esperamos true
+
+console.log( "1" === 1)
+// Esperamos false
+
+ +

Características de las comparaciones:

+ + + +

Operadores de igualdad

+ +

Igualdad (==)

+ +

El operador de igualdad convierte los operandos si no son del mismo tipo, luego aplica una comparación estricta. Si ambos operandos son objetos, entonces JavaScript compara las referencias internas que son iguales cuando los operandos se refieren al mismo objeto en la memoria.

+ +

Sintaxis

+ +
x == y
+
+ +

Ejemplos

+ +
1    ==  1         // true
+'1'  ==  1         // true
+1    == '1'        // true
+0    == false      // true
+0    == null       // false
+var object1 = {'key': 'value'}, object2 = {'key': 'value'};
+object1 == object2 // false
+0    == undefined  // false
+null == undefined  // true
+
+ +

Desigualdad (!=)

+ +

El operador de desigualdad devuelve verdadero si los operandos no son iguales. Si los dos operandos no son del mismo tipo, JavaScript intenta convertir los operandos a un tipo apropiado para la comparación. Si ambos operandos son objetos, entonces JavaScript compara las referencias internas que no son iguales cuando los operandos se refieren a diferentes objetos en la memoria.

+ +

Sintaxis

+ +
x != y
+ +

Ejemplos

+ +
1 !=   2     // true
+1 !=  '1'    // false
+1 !=  "1"    // false
+1 !=  true   // false
+0 !=  false  // false
+
+ +

Identidad / igualdad estricta (===)

+ +

El operador de identidad devuelve verdadero si los operandos son estrictamente iguales (ver arriba) sin conversión de tipo.

+ +

Sintaxis

+ +
x === y
+ +

Ejemplos

+ +
3 === 3   // true
+3 === '3' // false
+var object1 = {'key': 'value'}, object2 = {'key': 'value'};
+object1 === object2 // false
+ + + +

Sin identidad / desigualdad estricta (!==)

+ +

El operador sin identidad devuelve verdadero si los operandos no son iguales y / o no del mismo tipo.

+ +

Sintaxis

+ +
x !== y
+ +

Ejemplos

+ +
3 !== '3' // true
+4 !== 3   // true
+
+ +

Operadores relacionales

+ +

Cada uno de estos operadores llamará a la función valueOf() en cada operando antes de realizar una comparación.

+ +

Operador mayor que (>)

+ +

El operador mayor que, devuelve verdadero si el operando izquierdo es mayor que el operando derecho.

+ +

Sintaxis

+ +
x > y
+ +

Ejemplos

+ +
4 > 3 // true
+
+ +

Operador mayor o igual (>=)

+ +

El operador mayor o igual que, devuelve verdadero si el operando izquierdo es mayor o igual que el operando derecho.

+ +

Sintaxis

+ +
 x >= y
+ +

Ejemplos

+ +
4 >= 3 // true
+3 >= 3 // true
+
+ +

Operador menor que (<)

+ +

El operador menor que devuelve verdadero si el operando de la izquierda es menor que el operando de la derecha.

+ +

Sintaxis

+ +
 x < y
+ +

Ejemplos

+ +
3 < 4 // true
+
+ +

Operador menor o igual (<=)

+ +

El operador menor o igual devuelve verdadero si el operando izquierdo es menor o igual que el operando derecho.

+ +

Sintaxis

+ +
 x <= y
+ +

Ejemplos

+ +
3 <= 4 // true
+
+ +

Usando los operadores de igualdad

+ +

Los operadores de igualdad estándar (== y !=) utilizan el Algoritmo de Comparación de Igualdad Abstracta para comparar dos operandos. Si los operandos son de tipos diferentes, intentará convertirlos al mismo tipo antes de hacer la comparación, por ejemplo, en la expresión 5 == '5', la cadena de la derecha se convierte a {{jsxref("Number")}} antes de realizar la comparación.

+ +

Los operadores de igualdad estricta (=== y !==) usan el Algoritmo de Comparación de Igualdad Estricta y están destinados a realizar comparaciones de igualdad en operandos del mismo tipo. Si los operandos son de tipos diferentes, el resultado siempre es false, entonces 5 !== '5'.

+ +

Utilice operadores de igualdad estrictos si los operandos deben ser de un tipo específico así como de valor o si el tipo exacto de los operandos es importante. De lo contrario, utilice los operadores de igualdad estándar, que le permiten comparar la identidad de dos operandos, incluso si no son del mismo tipo.

+ +

Cuando la conversión de tipo está involucrada en la comparación (es decir, comparación no estricta), JavaScript convierte los tipos {{jsxref("String")}}, {{jsxref("Number")}}, {{jsxref("Boolean")}} o {{jsxref("Object")}} operandos de la siguiente manera:

+ + + +
Nota: Los objetos de cadena son Tipo Objeto, no String! Los objetos de cadena rara vez se utilizan, por lo que los siguientes resultados pueden ser sorprendentes:
+ +
// true, ya que ambos operandos son de tipo String (es decir, primitivas de cadena):
+'foo' === 'foo'
+
+var a = new String('foo');
+var b = new String('foo');
+
+// false como a y b son tipo Objeto y referencia a diferentes objetos
+a == b
+
+// false como a y b son tipo Objeto y referencia a diferentes objetos
+a === b
+
+// true como a y 'foo' son de tipo diferente y, el Objeto (a)
+// se convierte en cadena 'foo' antes de la comparación
+a == 'foo'
+ +

Especificaciones

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
EspecificaciónEstadoComentario
{{SpecName('ES1')}}{{Spec2('ES1')}}Definición inicial. Implementado en JavaScript 1.0
{{SpecName('ES3')}}{{Spec2('ES3')}} +

Agrega ===!== operadores. Implementado en JavaScript 1.3

+
{{SpecName('ES5.1', '#sec-11.8')}}{{Spec2('ES5.1')}} +

Definido en varias secciones de la especificación: Operadores Relacionales, Operadores de Igualdad

+
{{SpecName('ES6', '#sec-relational-operators')}}{{Spec2('ES6')}} +

Definido en varias secciones de la especificación: Operadores Relacionales, Operadores de Igualdad

+
{{SpecName('ESDraft', '#sec-relational-operators')}}{{Spec2('ESDraft')}} +

Definido en varias secciones de la especificación: Operadores Relacionales, Operadores de Igualdad

+
+ +

Compatibilidad con navegadores

+ + + +

{{Compat("javascript.operators.comparison")}}

+ +

Ver también

+ + -- cgit v1.2.3-54-g00ecf