05 Expresiones

download 05 Expresiones

of 5

Transcript of 05 Expresiones

  • 7/25/2019 05 Expresiones

    1/5

    13 de 69 http://www.masterlinux.org EFGM 2000-2007

    EXPRESIONES Y OPERADORES

    Una expresin es un conjunto de operandos y operadores cuyo resultadopuede ser evaluado. Las expresiones constituyen la base de cualquier aplicaciny se construyen agrupando variables, expresiones o datos que son afectados porcualquiera de los operadores vlidos en un lenguaje. Las expresiones enJavaScript, como en la mayora de lenguajes se finalizan con punto y coma (;).

    JavaScript cuenta con un amplio conjunto de operadores: aritmticos, deasignacin, de comparacin, lgicos, literales, bitwise y operadores especiales.

    Dependiendo del nmero de operandos requeridos, las operaciones (y losoperadores) se pueden clasificar en binarias y unarias. Las primeras requierende la intervencin de dos operandos; la suma, la resta, la multiplicacin y ladivisin son ejemplos de operaciones binarias. La expresin !Xes un ejemplo deoperacin lgica unaria que necesita de un solo operando para ser ejecutada.

    Operadores aritmticos

    Adems de los operadores aritmticos bsicos: suma (+), resta (-),divisin (/) y multiplicacin (*), existe el operador mdulo (%) que devuelve elresiduo de una divisin no entera. Por ejemplo, el resultado de evaluar 5%3; ser2. Que corresponde al residuo; 5 divido 3 es igual a 1 con un residuo de 2.

    Es importante recordar que el operador +utilizado con variables literalesacta como operador de concatenacin. Si por ejemplo, dentro de un scriptexisten las siguientes expresiones:

    var nombre = Andrs;var apellido1 = Gaitn;var apellido2 = Guzmn;todo = nombre + apellido1;todo += apellido2;

    En la cuarta lnea del anterior ejemplo la variable todotendr como valorAndrs Gaitn, y en la quinta Andrs Gaitn Guzmn.

    Operadores de asignacin

    La operacin de asignacin consiste en dar a la variable situada a laizquierda del operador el valor de la variable o de la expresin ubicada a laderecha del mismo. El operador de asignacin por excelencia es el signo igual

    =:

    X = 5;Y = X + 3;

  • 7/25/2019 05 Expresiones

    2/5

    14 de 69 http://www.masterlinux.org EFGM 2000-2007

    En la primera expresin Xtoma el valor de 5. En el segundo ejemplo a Yse le asigna el resultado de evaluar la expresin X+3, en este caso 8.

    En ocasiones es necesario afectar a una variable incrementando su valoren una cantidad determinada, o dividiendo el mismo por una cantidad dada.

    Considere el caso de las siguientes expresiones:

    X = X + 3;Y = Y A;Z = Z * 5;W = W / 4;T = T % 8;

    Existen en JavaScript al igual que en C y otros lenguajes, operadores deasignacin especiales que permiten escribir este tipo de expresiones de lasiguiente manera:

    X += 3; // X es igual a X + 3Y -= A; // Y toma el valor de Y - AZ *= 5; // Similar a Z = Z * 5W /= 4; //W es igual al valor de W dividido en 4T %= 8; // T toma el valor de T % 8todo += apellido2 // la cadena todo es igual a todo

    concatenada con apellido2

    Operadores de incremento decremento

    Es muy comn cuando se hacen programas, encontrarse con la necesidadde escribir lneas de cdigo como:

    a = a + 1;b = b - 1;

    En la primera lnea el valor de aes incrementado en 1, mientras que en lasegunda lnea la variable b es decrementada en 1. Existen dos operadoresunarios, conocidos como operador incremento (++) y decremento (--), quepermiten realizar las mismas operaciones:

    var a = 6;var b = 0;a++;b--;

    Los valores de ay bfinalmente sern 7y 1respectivamente.

    En el ejemplo anterior los operadores (++y --), se colocaron a la derecha

    del operando, lo que se conoce como operador posfijo. Podran habersecolocado a la izquierda de las variables, lo que se conoce como operador prefijo(++a, --b) y el resultado obtenido para ese ejemplo sera el mismo.

    Dado que los operadores de decremento e incremento tienen unaprelacin ms alta que los operadores aritmticos y de asignacin, existendiferencias cuando los primeros intervienen en expresiones como las delsiguiente ejemplo:

  • 7/25/2019 05 Expresiones

    3/5

    15 de 69 http://www.masterlinux.org EFGM 2000-2007

    var a = 6;var b = 6;var c = 0;var d = 0;c = ++a;d = b++;

    Si se visualizan los valores finales de cada variable, estos sern:

    a = 7, b = 7, c = 7 d = 6

    En la quinta lnea de cdigo, primero se incrementa en 1 el valor de aquedando este en 7 y luego se asigna este valor a la variable c que quedatambin en 7. En la sexta lnea, el script asigna a del valor de b(6) antes deincrementar a ben 1.

    Operadores de comparacin

    Los operadores de comparacin, llamados por algunos autores operadores

    de relacin, son del tipo binario y se utilizan para comparar valores oexpresiones dadas, el resultado de la comparacin puede ser verdadero o falso.En JavaScript existen seis operadores de relacin:

    Operador Significado

    == Igual a

    != Diferente de

    < Menor que

    > Mayor que

    = Mayor o igual que

    La evaluacin de expresiones que contengan operadores de relacindevuelven siempre un valor booleano que puede ser true, si el resultado de laevaluacin es cierto (ejemplo 3>2), false, si el resultado de la evaluacin esfalso (ejemplo 3

  • 7/25/2019 05 Expresiones

    4/5

    16 de 69 http://www.masterlinux.org EFGM 2000-2007

    Operadores lgicos

    Los operadores lgicos se utilizan para agrupar o combinar los resultadosde la evaluacin de operadores de relacin. Al igual que estos ltimos, losoperadores lgicos son del tipo binario (excepto el operador !, que es unario) ydevuelven true false, dependiendo del valor de cada uno de los operandos,veamos:

    El operador && (AND), devuelve true (verdadero) si la evaluacin deambos operandos es verdadera false(falso) cuando la evaluacin de ambos oalguno de los operandos es false. En la siguiente lnea de cdigo, la variableResultado recibir como valor true:

    Resultado = (3+59 || 7!=14/2);

    El operador !(NOT), devuelve true, si el valor del operando es falseyfalse si el valor del operando es true. La variable Resultado en el siguienteejemplo vale true:

    Resultado = !(3+5>9);

    Operadores especiales

    Dentro de los operadores especiales de JavaScript vale la pena destacarel operador condicional (?), que corresponde a un if - elsesimplificado, quetambin existe en C, JAVA y otros lenguajes. Su funcin consiste en devolver oejecutar uno de dos valores o expresiones posibles, dependiendo de si unacondicin que lo controla es evaluada como true o false:

    (condicin) ? valor1[expresin1] : valor2[expresin2];

    Si condicin (que puede ser cualquier expresin vlida), es evaluadacomo true, entonces el operador devuelve valor1o ejecuta expresin1, si porel contrario condicin es evaluada como false, entonces el operador devolvervalor2. En el siguiente ejemplo, la variable tipo tendr como valor festivo:

    dias=[Lunes, Martes, Mircoles, Jueves, Viernes,Sbado,

    Domingo];

    tipo = (dias[6] == Domingo) ? festivo : laboral;

    Precedencia de los operadores

    Las operaciones en una expresin que contiene ms de un operador, serealizan en orden jerrquico dependiendo de la precedencia de los operadores.

  • 7/25/2019 05 Expresiones

    5/5

    17 de 69 http://www.masterlinux.org EFGM 2000-2007

    Por ejemplo, en una expresin que involucre una suma y una divisin ( 3 + 4/5),primero se efectuar la divisin, por tener esta una precedencia ms alta y luegola suma.

    La siguiente tabla, muestra el orden de precedencia de los operadores deJavaScript de mayor a menor. No se incluyen algunos operadores que existen en

    JavaScript por considerar que no son del alcance de este mdulo. Cuando variosoperadores se encuentran en la misma lnea, tendrn una precedencia ms altaaquellos ubicados a la izquierda en la celda.

    Tipo de operador Operador

    Llamada, miembro (), [], .

    Negacin, incremento !, -, ++, --

    Multiplicacin, divisin *, /, %

    Suma, resta +, -

    Comparacin =

    Igualdad ==, !=

    AND lgico &&

    OR Lgico ||

    Condicional ? :

    Asignacin =, +=, -=, *=, /=, %=