martes, 18 de enero de 2022

Office Scripts: Operadores

Tras repasar de manera introductoria los tipos de datos y las formas de declarar variables en Office Scripts para Excel, llega el momento de ver algunos de los operadores más frecuentes...
Sabiendo que habitualmente podemos trabajar con dos tipologías de operadores: UNARIA y BINARIA
Un operador binario requiere dos operandos, uno antes del operando y otro después del operador:
operando1 operador operando2
Por ejemplo, 21-13 o a*b

Mientras que un operador unario solo necesita un operando, antes o después del operador:
operador operando1 o operando1 operador
Por ejemplo, x++ o ++x.

Si navegas un poco por internet encontraras diferentes clasificaciones de estos operadores, y una lista larga de todos ellos... pero al final todo se resume en:
1-operadores de asignación: donde se asigna un valor a su operando izquierdo basándose en el valor de su operando derecho. Ejemplo Y = X
NombreForma…Significado
Asignaciónx = yx = y
Asignación de adiciónx += yx = x + y
Asignación de restax -= yx = x - y
Asignación de multiplicaciónx *= yx = x * y
Asignación de divisiónx /= yx = x / y
Asignación de residuox %= yx = x % y
Asignación de exponenciaciónx **= yx = x ** y

2-operadores de comparación: donde se comparan dos operadores, recuperando un verdadero o falso.
OperadorForma…Significado
Igual (==)x == yDevuelve true si los operandos son iguales.
No es igual (!=)x != yDevuelve true si los operandos no son iguales.
Estrictamente igual (===)x === yDevuelve true si los operandos son iguales y del mismo tipo.
Desigualdad estricta (!==)x !== yDevuelve true si los operandos son del mismo tipo pero no iguales, o son de diferente tipo.
Mayor que (>)x > yDevuelve true si el operando izquierdo es mayor que el operando derecho.
Mayor o igual que (>=)x >= yDevuelve true si el operando izquierdo es mayor o igual que el operando derecho.
Menor que (<)x < yDevuelve true si el operando izquierdo es menor que el operando derecho.
Menor o igual (<=)x <= yDevuelve true si el operando izquierdo es menor o igual que el operando derecho.

3-operadores aritméticos: que toma valores numéricos (ya sean literales o variables) como sus operandos y devuelve un solo valor numérico como resultado.
OperadorForma...Significado
Residuo (%)x % y // 20 % 3 = 2Operador binario. Devuelve el resto entero de dividir los dos operandos.
Incremento (++)x=3 // ++x = 4 Operador unario. Agrega uno a su operando. Si se usa como operador prefijo (++x), devuelve el valor de su operando después de agregar uno; si se usa como operador sufijo (x++), devuelve el valor de su operando antes de agregar uno.
Decremento (--)x=9 // --x = 8Operador unario. Resta uno de su operando. El valor de retorno es análogo al del operador de incremento.
Negación unaria (-)x=5 // -x = -5Operador unario. Devuelve la negación de su operando.
Positivo unario (+)x='13' // +x = 13Operador unario. Intenta convertir el operando en un número, si aún no lo es.
Operador de exponenciación (**)3 ** 3 = 27Calcula la base a la potencia de exponente, es decir, baseexponente

4-operadores lógicos: se utilizan normalmente con valores booleanos (true o false).
OperadorForma…Significado
AND Lógico (&&)expr1 && expr2Devuelve expr1 si se puede convertir a false; de lo contrario, devuelve expr2. Por lo tanto, cuando se usa con valores booleanos, && devuelve true si ambos operandos son true; de lo contrario, devuelve false.
OR lógico (||)expr1 || expr2Devuelve expr1 si se puede convertir a true; de lo contrario, devuelve expr2. Por lo tanto, cuando se usa con valores booleanos, || devuelve true si alguno de los operandos es true; si ambos son falsos, devuelve false.
NOT lógico (!)!exprDevuelve false si su único operando se puede convertir a true; de lo contrario, devuelve true.

5-operador de cadena: el operador de concatenación (+) concatena dos valores de cadena, devolviendo otra cadena que es la unión de los dos operandos dados.
OperadorForma…Significado
más (+)expr1 + expr2 // expr1 += expr2Concatena ambas expresiones

Por supuesto existen más categorías, pero he optado por detallar los principales o más habituales.

Algunos ejemplos de estos operadores...
function main(workbook: ExcelScript.Workbook)
{
  let v1: string ='1';
  let v2: number = 1;
  let txt3: string='Romero';
  let txt4='año ';
  let anyo=2022;
  let mes=1;
  let dia1=31;
  let dia2=10;
//
console.log(v1 == v2);
console.log(v1 === v2);
console.log(+v1 === v1);
console.log(dia2 % dia1);
console.log( txt4 += anyo);
}

Office Scripts: Operadores

El primer ejemplo v1 == v2 compara el '1' (texto) con 1 (número), retornando true, ya que el valor es el mismo.
Sin embargo v1 === v2 compara y verifica valor y tipo de dato, por lo que devuelve false.
Otro ejemplo curios es el operador de cadena +=, donde sobre la variable txt4 añadimos otra subcadena 'anyo', obteniendo ahora una cadena completa asociada a txt4...

NOTA FINAL: OJO con los operadores, ya que nos son iguales, ni en forma ni en comportamiento, a los de otros lenguajes (como VBA) en todos los casos!!!

No hay comentarios:

Publicar un comentario

Nota: solo los miembros de este blog pueden publicar comentarios.