JavaScript Unidad 2
JavaScript Unidad 2
25
Un programa est formado por los elementos siguientes: Constantes: Representan entidades que no se modifican durante la ejecucin del programa. Pueden tener un identificador o carecer del mismo. Variables: Posiciones de memoria a las que se asigna un nombre y a las que se puede acceder para obtener el valor que almacenan. Operadores: Smbolos que representan una operacin de naturaleza matemtica, relacional o lgica. Expresiones Son combinaciones de variables, constantes y operadores. La evaluacin de una expresin devuelve un valor. Instrucciones o sentencias: Permiten organizar el flujo de ejecucin de un programa estableciendo el orden en el que se encadenan las acciones del mismo. Funciones: Agrupaciones de instrucciones diseadas para resolver un problema concreto. El lenguaje presenta algunas normas o reglas que deben seguirse:
26
Aula Mentor Iniciacin a Javascript Los comentarios son iguales que en C/C++: /* ... */ para encerrar un bloque y // para
obligatorio)
Se pueden agrupar sentencias utilizando llaves {sentencia1; sentencia2; ... }
2.2 - CONSTANTES Las constantes representan valores que no se modifican durante la ejecucin del programa. Son constantes todos los valores que aparecen directamente en un programa, por ejemplo 3.1415 es una constante que representa el nmero PI. Aula Mentor es otra constante que representa una cadena de caracteres. En Javascript se pueden definir constantes que incorporen un identificador de manera que se asigna un valor a dicho identificador y en el programa se hace referencia a la constante no por su valor sino por el identificador que la representa. La ventaja es que si el programador decide modificar el programa y cambiar el valor de la constante, no tiene que buscar en todo el programa el lugar en el que aparece, limitndose solamente a hacerlo en el lugar en el que ha sido definida la misma. Las constantes con identificador se declaran con la clusula var que tambin se usa para las variables. Seguido al identificador tenemos el smbolo = y el valor constante.
var tipo_iva=18;
Algunos navegadores entienden la clusula const, que se usa en otros lenguajes, pero no es compatible con todos, por lo que no conviene utilizarla. 2.3 - VARIABLES Las variables son zonas de la memoria del ordenador identificadas por un nombre y capaces de almacenar un valor. La variables deben su nombre a la capacidad para almacenar valores que pueden cambiar durante la evolucin del programa en contraposicin a las constantes cuyo valor tal y como seala su nombre no puede cambiar. Las variables proporcionan una gran flexibilidad a los programas ya que
27
permiten que estos puedan resolver problemas con cierta generalidad. Por ejemplo, se podra hacer un programa para resolver ecuaciones de segundo grado con constantes. Pero dicho programa slo podra resolver siempre la misma ecuacin. Sin embargo al dotar de variables al programa, este puede utilizarse para resolver cualquier ecuacin de segundo grado. Las variables son elementos fundamentales en cualquier lenguaje de programacin. Sirven para guardar y manipular informacin. Podemos representar una variable como un recipiente en el que se puede depositar informacin que puede ser consultada o cambiada en cualquier momento de la ejecucin del programa. En realidad una variable consiste en un conjunto de posiciones de memoria reservadas que a las que damos un nombre llamado identificador de la variable que nos permitir manipular la informacin. Las variables se crean normalmente al comienzo del programa utilizando la palabra var seguida del nombre de la variable que queremos crear, como en los siguientes ejemplos:
var nombre; var edad;
NOTA
Como JavaScript diferencia maysculas y minsculas en los identificadores es muy fcil confundirse. Por este motivo es necesario seguir dos normas: 1-Declarar todos los identificadores al comienzo del programa para poder
Se pueden declarar dos o ms variables en una instruccin. En estos casos se indicar la palabra reservada var y, a continuacin, la lista de las variables que queremos declarar (los nombres separados por comas):
var nombre, edad;
comprobar rpidamente cualquier duda. 2- Establecer un criterio a la hora de construir identificadores y seguirlo siempre (Determinar cundo se utilizan maysculas, minsculas y sub-guiones, etc.). A la hora de establecer este criterio deberemos valorar
El nombre o identificador de la variable podr estar formado por letras (maysculas y minsculas), caracteres de subrayado (_), el smbolo de dlar ($)
, los nmeros (del 0 al 9). Pero no podr comenzar por un nmero y tampoco podr coincidir el nombre con alguna de las palabras reservadas del lenguaje (nombres de
28
Aula Mentor Iniciacin a Javascript comandos, etctera). Son por tanto identificadores vlidos: vApellido1; $1Apellido; _Apellido y no vlidos: 1Apellido; #1Apellido; Apellido1; 2.3.1 -ALMACENAMIENTO DE INFORMACIN EN LA VARIABLE. Para guardar informacin en una variable se utilizar el operador de asignacin (=) precedido por el nombre de la variable y seguido por el valor que queremos asignar. Ejemplos:
Nombre = 'Miguel'; Edad = 17;
Atencin: cuando guardamos informacin en una variable, cualquier otro valor que dicha variable tuviese anteriormente se perder (salvo que lo guardemos en otra variable antes de hacer la asignacin). JavaScript permite asignar un valor a una variable en el mismo momento de su declaracin. Ejemplo:
var Nombre = 'Miguel';
Tambin permite asignar valor a una variable que no ha sido previamente declarada.
NuevoNombre = 'Alfonso';
En el ejemplo anterior NuevoNombre no ha sido declarada previamente, sin embargo, al encontrar esta expresin JavaScript crear implcitamente la nueva variable y le asignar el valor indicado. Esta prctica es, de todo punto de vista, desaconsejable; de hecho, la mayora de los lenguajes de programacin la consideran ilegal. Debemos acostumbrarnos a declarar todas las variables que vayamos a utilizar al comienzo del programa.
2.3.2 -CONSULTA O UTILIZACIN DEL VALOR CONTENIDO EN LA VARIABLE. Una vez declarada una variable podemos hacer referencia a su contenido para visualizarlo, o para emplearlo con otras expresiones.
29
<HTML> <HEAD><TITLE>Manejando variables</TITLE></HEAD> <BODY> <SCRIPT LANGUAGE="JavaScript"> /* Ejemplo creacin y manejo de variables */ var Num1 = 5; var Num2 = 7; var Suma; Suma = Num1+Num2; alert(Suma); </SCRIPT> </BODY> </HTML>
Este programa crea tres variables (Num1, Num2 y Suma), inicializando las dos primeras en el momento de su creacin y asignado el valor de la suma de estas a la variable Suma. Finalmente muestra una ventana de alerta con el valor de la variable Suma. Nota: JavaScript elimina automticamente las variables al finalizar el programa en el que se han declarado por lo que su valor se pierde en futuras ejecuciones del mismo.
Todas las variables en JavaScript se crean de la misma forma, utilizando tal y como se ha sealado la palabra reservada var. Sin embargo y a diferencia de otros lenguajes de programacin, el tipo de las variables es dinmico, de manera que el programador puede utilizar la misma variable para almacenar diferentes tipos de datos. Dicho de otra manera, las variables adaptan su tipo al contenido que almacenan. Aunque no es una prctica recomendable es aprovechada en algunos casos para hacer que los programas sean ms sencillos pero en otras ocasiones provoca tener que aadir cdigo para detectar el tipo de dato que tiene la variable en un instante determinado.
30 2.4.1 -NUMRICAS
Se utilizan para almacenar valores numricos enteros (llamados integer en ingls) o reales (llamados float en ingls). En este caso, el valor se asigna indicando directamente el nmero entero o real. Los nmeros reales utilizan el carcter . (punto) en vez de , (coma) para separar la parte entera y la parte decimal:
var iva = 18; // variable entera var euro = 166.38665; // variable real
Un valor numrico se suele representar mediante una serie de dgitos que pueden ir precedidos de un signo (+ -) y que pueden llevar un punto decimal. A continuacin podemos ver algunas expresiones numricas vlidas: 45 389.347 -18 +6789.89 8768.3243 JavaScript tambin admite la notacin exponencial para representar valores numricos en formato de coma flotante: 56.987E+12 23634E-6 -484.2382E-20 Se pueden representar nmeros en base distinta a la decimal, por ejemplo en hexadecimal, o en octal. Para expresar un nmero hexadecimal antepondremos el prefijo 0x (cero equis); y para expresar un nmero octal antepondremos un 0 (cero). 0xF34 (en hexadecimal) 0567 (en octal)
<HTML> <HEAD><TITLE>Representaciones en base 8 y 16</TITLE></HEAD> <BODY> <SCRIPT LANGUAGE="JavaScript"> alert ("Hexadecimal:"+ 0xF34); alert ("Octal:"+ 0567); // Fin del programa. </SCRIPT> </BODY> </HTML>
Observe que al ejecutar el ejemplo anterior, JavaScript transforma el F34 (hexadecimal pues va precedido por 0x) a su correspondiente valor decimal 3892. Tambin ha trasformado el 567 (octal pues va precedido por 0) al valor correspondiente en decimal: 375.
31
2.4.2 -CADENAS DE CARACTERES Permiten almacenar caracteres que constituyen texto. Para asignar el valor a la variable es necesario encerrar el valor entre comillas dobles o simples:
var mensaje = "Hola mundo "; var nombre = 'Aula Mentor'; var letra = 'b';
El motivo de que se puedan utilizar comillas dobles o simples indistintamente es para poder utilizar comillas dentro del propio texto que se desea almacenar. En este caso es necesario encerrar con un tipo de comillas diferente al que se desea almacenar.
/* El contenido de texto1 tiene comillas simples, por lo que se encierra con comillas dobles */ var texto1 = "Una frase con 'comillas simples' dentro"; /* El contenido de texto2 tiene comillas dobles, por lo que se encierra con comillas simples */ var texto2 = 'Una frase con "comillas dobles" dentro';
Pero si el texto que se desea almacenar incluye ambos tipos de comillas as como otros caracteres especiales es necesario utilizar las secuencias de escape que no son ms que smbolos precedidos de la barra inclinada \ y cuyo significado es: Elemento que se desea incluir Una nueva lnea Un tabulador Una comilla simple Una comilla doble Una barra inclinada Secuencia de Escape \n \t \' \" \\
var texto1 = 'Una frase con \'comillas simples\' dentro'; var texto2 = "Una frase con \"comillas dobles\" dentro";
Las variables de tipo lgico o booleano son aquellas que permiten representar valores de verdad: true (verdadero) o false (falso).
var PagoRealizado = false; var ivaIncluido = true;
2.4.4 -TIPOS ESTRUCTURADOS: ARRAYS Mientras que tal y como se ha observado, los tipos simples son capaces de almacenar un nico valor simultneamente en una variable, los tipos estructurados o estructuras de datos permiten almacenar mltiples valores. Tradicionalmente los lenguajes de programacin disponen de numerosos tipos estructurados. Entre los ms habituales destacan los Arrays ms conocidos en el mbito matemtico por matrices o incluso vectores cuando se limitan a una dimensin. Un array es un conjunto de variables del mismo tipo que tienen un nombre nico y se diferencian unas de otras por la posicin que ocupan. El objetivo de los arrays es simplificar el cdigo y establecer una relacin entre un conjunto de variables que representan realidades similares. Por ejemplo, si se desea trabajar con los meses del ao en un programa se podran definir doce variables simples y por tanto independientes cada una con su propio nombre y que almacenasen valores diferentes:
var mes_uno = "Enero"; var mes_dos = "Febrero"; ... var mes_doce = "Diciembre";
Esta estrategia obliga a crear una variable por cada mes y dado que cada una es independiente su nombre debe de ser distinto. En captulos posteriores, cuando se estudien las estructuras de control, se comprobar que utilizar arrays en vez de variables simples, reduce mucho la complejidad del cdigo y abre un abanico ingente de posibilidades a la hora de resolver problemas que impliquen informacin relacionada. En este tipo de casos, se pueden agrupar todas las variables relacionadas en una coleccin
33
de variables o array. El ejemplo anterior se puede plantear con una array de una dimensin (vector) de la siguiente forma:
var meses = ["Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto","Septiembre","Octubre","Noviembre","Diciembre"];
Desde el punto de vista sintctico, la definicin de un array es muy sencilla ya que simplemente hay que utilizar se utilizan los caracteres [ y ] para delimitar su comienzo y su final y se utiliza el carcter , (coma) para separar sus elementos:
var nombre_array = [valor1, valor2, ..., valorN];
Para acceder a los diferentes elementos de un array simplemente hay que utilizar el nombre de la variable y el ndice que representa la posicin que ocupa el elemento al que se desea acceder dentro del array. Hay que tener en cuenta que las posiciones comienzan a numerarse en cero, por lo que el primer elemento es el mes[0] y as sucesivamente mes[1], mes[2], etc. 2.4.5 -TIPOS ESTRUCTURADOS: OBJETOS Los objetos son los principales protagonistas del paradigma de la programacin orientada a objetos. Son una evolucin de otro tipo estructurado denominado registro (estructuras en algunos lenguajes). Los objetos representan entidades cuya complejidad hace que no sea suficiente un valor para almacenar toda la informacin necesaria. Por este motivo, los registros o estructuras son conjuntos de datos de diferente tipo relacionados entre s. Por ejemplo, los datos de una persona (nombre, apellidos, fecha de nacimiento, direccin, etc.) se pueden agrupar en un registro o estructura. El paradigma orientado a objetos incorpora a esos datos estructurados, las funciones (llamadas mtodos) que manipulan esos datos, haciendo que los datos y los procedimientos conformen un ente llamado objeto. En JavaScript hay numerosos objetos predefinidos y el usuario-programador puede definir los que necesite. Ejemplo de objetos predefinidos en Javascript son las ventanas, los formularios, los controles, etc.
34
Aula Mentor Iniciacin a Javascript 2.4.6 -VALORES ESPECIALES En JavaScript existen dos valores especiales que son el valor null que indica que el contenido de una variable es nulo y el valor undefined que indica que la variable no tiene valor. El valor null, por ejemplo, es el valor que devuelve la funcin prompt cuando el usuario pulsa el botn Cancelar. El valor undefined, por ejemplo, es el valor que aparece en el control de introduccin de datos cuando no se establece valor por defecto en la funcin prompt. 2.5 - OPERADORES Los operadores son el primer eslabn a la hora de establecer la capacidad de clculo de un lenguaje de programacin. Con ellos es posible realizar operaciones de diversa naturaleza que incluyen como mnimo clculos aritmticos, relacionales y lgicos. La combinacin de operadores con los datos a tratar conformar las expresiones. Las expresiones son combinaciones de operadores y operandos. Los operandos pueden ser constantes, variables y llamadas a funciones. Todas las expresiones producen o devuelven un resultado de un cierto tipo que estar determinado por el tipo de operandos que manipula y por los operadores que utiliza. As mismo la operacin asociada a un operador puede ser diferente en funcin de los operandos que maneje. Esto recibe el nombre de sobrecarga de operadores y se manifiesta de forma muy clarificadora cuando se analiza el operado +. Si este operador se aplica a dos operandos numricos, el resultado ser la suma aritmtica. Sin embargo, si se aplica a operandos de tipo cadena de caracteres, el resultado ser la concatenacin (yuxtaposicin) de ambas cadenas.
Tipo de Expresin Expresin de cadena Expresin de cadena Expresin aritmtica Expresiones relacionales Expresiones lgicas Tipo de retorno Cadena Cadena Numrico Lgico Lgico Expresin Hola + Mundo 10 + 20 10 + 20 7>5 True && False Resultado HolaMundo 1020 30 True False
35
2.5.1 -OPERADOR DE CONCATENACIN. Para unir cadenas de caracteres se emplea el operador de concatenacin (+). Por ejemplo la expresin "Buenos" + "Das" dar como resultado "BuenosDias". 2.5.2 -OPERADORES ARITMTICOS. Se utilizan con datos de tipo numrico y devuelven siempre un valor numrico. Son los conocidos: suma (+), resta (-), multiplicacin (*), divisin (/) y mdulo o resto de la divisin entera (%).
<HTML> <HEAD><TITLE>Operadores aritmticos</TITLE></HEAD> <BODY> <SCRIPT LANGUAGE="JavaScript"> /* Ejemplo operadores aritmticos*/ var Num1 = 2, Num2 = 4, Num3 = 6; alert( " Num1 \t" + (Num1) +"\nNum2 \t" + (Num2) +"\nNum3 \t" + (Num3) +"\nNum1 + Num2 \t" + (Num1 + Num2) +"\nNum3 / Num2 \t" + (Num3 / Num2) +"\nNum3 % Num2 \t" + (Num3 % Num2) +"\nNum1 + 2 \t" + (Num1 + 2) +"\nNum1 \t" + (Num1) ); </SCRIPT> </BODY> </HTML>
2.5.3 -OPERADORES DE INCREMENTO Y DECREMENTO Un caso particular dentro de los operadores aritmticos son los operadores de incremento y decremento por el hecho de que su uso no solo devuelve un valor sino que modifica el propio contenido de la variable. En realidad estos operadores combinan un operador aritmtico con el operador de asignacin que aparece explicado en el prximo epgrafe. Se utilizan con variables numricas y permiten incrementar o decrementar en
36
Aula Mentor Iniciacin a Javascript una unidad el valor de la variable sobre la que se aplica. Se trata de operadores unarios y el operando sobre el que se aplican siempre debe ser una variable ya que no tiene sentido intentar incrementar una constante porque no se puede modificar su valor. Los operados son el incremento (++) y el decremento (--).
var numero = 9; ++numero; alert(numero); // numero = 10
Ambos operandos tienen un efecto diferente si se utilizan de forma prefija (delante del operando) que de forma postfija (detrs del operando). En el primer caso incrementan/decrementan el valor de la variable y la expresin devuelve como resultado el nuevo valor (ya incrementado/decrementado). El caso postfijo primero devuelve el valor antes de incrementar/decrementar y posteriormente incrementa/decrementa el valor de la variable. Evidentemente esta sutil pero importante diferencia slo se observa cuando el operador aparece formando parte de otra expresin ms compleja. Por ejemplo se puede observar en el ejemplo siguiente asociada a una funcin alert.
<HTML> <HEAD><TITLE>Diferencias en notacin prefija y postfija</TITLE></HEAD> <BODY> <SCRIPT LANGUAGE="JavaScript"> var pruebaA = 1; var pruebaB = 1; alert ("Operador ++ Prefijo:" + (++pruebaA)); alert ("Operador ++ Postfijo:"+ (pruebaB++)); // Fin del programa. </SCRIPT> </BODY> </HTML>
37
2.5.4 -OPERADOR DE ASIGNACIN El operador de asignacin es uno de los operadores ms importantes en los lenguajes de programacin ya que permite asignar (almacenar) en una variable, el resultado de una expresin. El smbolo que representa el operador de asignacin (=) el cual no debe confundirse con el operador relacional de comparacin (==)
var numero = 9;
2.5.5 -OPERADORES ARIMTICOS CON ASIGNACIN Dado que es muy frecuente realizar operaciones aritmticas que impliquen que una variable sea operando de la expresin y variable destino del resultado, los lenguajes de programacin incorporan operadores que simplifican la escritura de expresiones que suelen ser habituales en los programas. Estos operadores combinan dos smbolos que son el correspondiente a la operacin deseada y el operador de asignacin. Para el caso de la suma sera (+=)
<HTML> <HEAD><TITLE>Operadores aritmticos con asignacin</TITLE></HEAD> <BODY> <SCRIPT LANGUAGE="JavaScript"> /* Ejemplo operadores asignacin*/ var Suma = 6, Resta = 6, Multi = 6, Divi = 6, Modu = 6; Suma += 2; Resta -= 2; Multi *= 2; Divi /= 2; Modu %= 5; alert( " Suma \t" + (Suma) +"\nResta \t" + (Resta) +"\nMulti \t" + (Multi) +"\nDivi \t" + (Divi) +"\nModu \t" + (Modu)
);
</SCRIPT> </BODY> </HTML>
38
Aula Mentor Iniciacin a Javascript El programa anterior muestra el funcionamiento de los operadores de asignacin +=, -=, *=, /= y %= utilizando cinco variables llamadas Suma, Resta, Multi, Divi y Modu. Iniciacilizadas todas ellas a 6 y realizando las correspondientes operaciones de asignacin. Finalmente se muestra con una ventana de alerta los nombres de las variables y su valor tras la operacin. 2.5.6 -OPERADORES RELACIONALES Los operadores relacionales permiten comparar dos operandos siempre que entre ambos est definida una relacin de orden. En JavaScript estn definidos los operadores: mayor que (>), menor que (<), mayor o igual (>=), menor o igual (<=), igual que (==) y distinto de (!=). El resultado de aplicar un operador relacin da lugar a una expresin lgica por lo que el resultado siempre ser true o false.
<HTML> <HEAD><TITLE>Operador relacional de igualdad</TITLE></HEAD> <BODY> <SCRIPT LANGUAGE="JavaScript"> var A = 10; var B = 12; alert ( A==B); </SCRIPT> </BODY> </HTML>
Es importante distinguir el operador de igualdad (==) del operador de asignacin (=) ya que es origen de muchos errores y su deteccin no resulta fcil porque ambos se pueden utilizar en el mismo contexto con resultados completamente diferentes. Cuando se utilizan estos operadores con operandos del tipo cadenas de texto, los operadores "mayor que" (>) y "menor que" (<) comparan letra a letra comenzando desde la izquierda hasta que se encuentre una diferencia entre las dos cadenas de texto. Para determinar si una letra es mayor o menor que otra, las maysculas se consideran menores que las minsculas y las primeras letras del alfabeto son menores que las ltimas. La tabla ASCII (codificacin numrica asociada a todos los caracteres visibles de un teclado) determina el orden en estas comparaciones. Se puede consultar una tabla ASCII en http://ascii.cl/es/
39
Ejercicio 4 2.5.7 -OPERADORES LGICOS Los operadores lgicos permiten combinar expresiones lgicas (aquellas que devuelven como resultado un valor true o false). Responden a tablas de verdad preestablecidas que determinan el resultado del operador a la combinacin de valores de los operandos. El resultado siempre es un valor true o false. Dado que en algunos lenguajes de programacin no existe el tipo lgico como tipo de datos, tradicionalmente se considera que cualquier valor numrico diferente de cero se considera true y cero se considera false. Por este motivo se pueden utilizar estos operadores con operandos numricos. As mismo, cuando se trabaja con cadenas de caracteres, la cadena vaca se considera false y el resto de cadenas true. Operador negacin (!): Utiliza un nico operando y cuyo resultado es true cuando el operando vale false y false cuando el operando vale true.
var soltero = true; alert(!soltero); // Muestra "false" y no "true"
Operador Y-lgico (AND) (&&): El operador lgico AND es un operador binario por lo que obtiene su resultado como resultado de evaluar dos operandos. La tabla de verdad de este operador devuelve true si los dos operandos son true y false en cualquier otro caso. Operador O-lgico (OR) (||): El operador lgico OR es un operador binario por lo que obtiene su resultado como resultado de evaluar dos operandos. La tabla de verdad de este operador devuelve false si los dos operandos son false y true en cualquier otro caso.
2.6 - PRECEDENCIA DE OPERADORES En una expresin pueden aparecer varios operadores y el resultado podra ser diferente si las operaciones se realizan en un orden o en otro. Como parece lgico pensar
40
Aula Mentor Iniciacin a Javascript no se puede dejar al azar este asunto ya que las expresiones deben ser evaluadas siguiendo unas pautas establecidas. Por ejemplo, la operacin 3+5*4 proporcionar resultados distintos si primero se suma y luego con el resultado se multiplica que si se hace primero la multiplicacin y luego la suma. En el primer caso el resultado sera 32 mientras que en el segundo sera 23. Para eliminar esta ambigedad, los lenguajes de programacin, como herencia de la matemtica, establecen una jerarqua de operadores que determina el orden de evaluacin de los operadores.
Prioridad
1 2 3 4 5 6 7 8
Operadores
++ -- - */% +< > <= >= == = && || = += -= *= /= %=
Operaciones
Incremento, decremento, cambio de signo, negacin Multiplicacin, divisin, resto (mdulo) de la divisin Suma, resta Menor, mayor, menor o igual, mayor o igual Igual, distinto Conjuncin lgica (AND Y lgico) Disyuncin lgica (OR O lgico) Asignacin, asignacin y suma, etc.
Observaciones: Los operadores ++ y -- varan su comportamiento en una expresin dependiendo de si se aplican antes (pre-) o despus (post-). Los operadores que se encuentran en el mismo grupo tienen la misma precedencia. En estos casos no se garantiza el orden de evaluacin. Si queremos que se evalen en algn orden concreto deberemos utilizar parntesis. La precedencia o prioridad establecida por defecto se puede alterar utilizando parntesis, de manera que las expresiones que se encuentran dentro de los parntesis se realizan antes que las restantes. Se pueden anidar parntesis y dentro de los mismos se utiliza la precedencia por defecto. JavaScript permite expresiones como: 100000 >= SALARIO <= 200000. Este tipo de expresiones es ilegal en otros lenguajes de programacin y provocar un error ya que al evaluar la primera parte de la expresin se sustituir por un valor lgico de tipo true/false y este resultado no puede compararse con un valor numrico. La expresin vlida para la mayora de los lenguajes de programacin sera SALARIO >= 100000 && SALARIO <= 200000.