Ver índice de contenidos del libro

2.3. Operadores

2.3.1. Operadores básicos

Los operadores básicos permiten manipular valores.

Concatenación

var foo = 'hello';
var bar = 'world';
console.log(foo + ' ' + bar); // la consola de depuración muestra 'hello world'

Multiplicación y división

2 * 3; 2 / 3;

Incrementación y decrementación

var i = 1;
var j = ++i;  // incrementación previa:  j es igual a 2; i es igual a 2
var k = i++;  // incrementación posterior: k es igual a 2; i es igual a 3

2.3.2. Operaciones con números y cadenas de caracteres

En JavaScript, las operaciones con números y cadenas de caracteres (en inglés strings) pueden ocasionar resultados no esperados.

Suma vs. concatenación

var foo = 1;
var bar = '2';
console.log(foo + bar);  // error: La consola de depuración muestra 12

Forzar a una cadena de caracteres actuar como un número

var foo = 1;
var bar = '2';
// el constructor 'Number' obliga a la cadena comportarse como un número
console.log(foo + Number(bar));  // la consola de depuración muestra 3

El constructor Number, cuando es llamado como una función (como se muestra en el ejemplo) obliga a su argumento a comportarse como un número. También es posible utilizar el operador de suma unaria, entregando el mismo resultado:

Forzar a una cadena de caracteres actuar como un número (utilizando el operador de suma unaria)

console.log(foo + +bar);

2.3.3. Operadores lógicos

Los operadores lógicos permiten evaluar una serie de operandos utilizando operaciones AND y OR.

Operadores lógicos AND y OR

var foo = 1;
var bar = 0;
var baz = 2;
 
foo || bar;  // devuelve 1, el cual es verdadero (true)
bar || foo;  // devuelve 1, el cual es verdadero (true)
 
foo && bar;  // devuelve 0, el cual es falso (false)
foo && baz;  // devuelve 2, el cual es verdadero (true)
baz && foo;  // devuelve 1, el cual es verdadero (true)

El operador || (OR lógico) devuelve el valor del primer operando, si éste es verdadero; caso contrario devuelve el segundo operando. Si ambos operandos son falsos devuelve falso (false). El operador && (AND lógico) devuelve el valor del primer operando si éste es falso; caso contrario devuelve el segundo operando. Cuando ambos valores son verdaderos devuelve verdadero (true), sino devuelve falso.

Puede consultar la sección "Elementos Verdaderos y Falsos" para más detalles sobre que valores se evalúan como true y cuales se evalúan como false.

Nota Puede que a veces note que algunos desarrolladores utilizan esta lógica en flujos de control en lugar de utilizar la declaración if. Por ejemplo:

// realizar algo con foo si foo es verdadero
foo && doSomething(foo);
 
// establecer bar igual a baz si baz es verdadero;
// caso contrario, establecer a bar igual al
// valor de createBar()
var bar = baz || createBar();

Este estilo de declaración es muy elegante y conciso; pero puede ser difícil para leer (sobretodo para principiantes). Por eso se explícita, para reconocerlo cuando este leyendo código. Sin embargo su utilización no es recomendable a menos que esté cómodo con el concepto y su comportamiento.

2.3.4. Operadores de comparación

Los operadores de comparación permiten comprobar si determinados valores son equivalentes o idénticos.

Operadores de Comparación

var foo = 1;
var bar = 0;
var baz = '1';
var bim = 2;
 
foo == bar; // devuelve falso (false)
foo != bar; // devuelve verdadero (true)
foo == baz; // devuelve verdadero (true); tenga cuidado
 
foo === baz; // devuelve falso (false)
foo !== baz; // devuelve verdadero (true)
foo === parseInt(baz); // devuelve verdadero (true)
 
foo > bim;   // devuelve falso (false)
bim > baz;   // devuelve verdadero (true)
foo <= baz;  // devuelve verdadero (true)