jueves, 20 de septiembre de 2012

Características principales del lenguaje JavaScript

El lenguaje JavaScript como lenguaje tiene ciertas características fundamentales que determinan la forma en que es interpretado cada vez que se carga la página web en el navegador. Entre estas características se encuentran:

Distinción entre mayúsculas y minúsculas.

JavaScript es un lenguaje sensible al uso de letras mayúsculas y minúsculas, lo que significa que para el lenguaje no es igual una palabra escrita toda en letras minúsculas a otra con los mismos caracteres con una, varias o todas en mayúsculas. Por ejemplo, los identificadores salario, Salario, SaLaRio y SALARIO dentro de una secuencia de comandos de JavaScript harían referencia a variables distintas.
La distinción entre mayúsculas y minúsculas se aplica a todos los aspectos del lenguaje: palabras clave, operadores, identificadores de variables, manejadores de eventos, propiedades de objetos, etc. De hecho, todas las palabras clave de JavaScript están definidas en minúsculas. Así cuando use un condicional if, debe asegurarse que lo escribe en minúsculas y no usar If, iF o IF.

Espacios en blanco.

Los caracteres de espacio en blanco son todos aquellos caracteres que ocupan un espacio en la pantalla sin representación visible. Es así que son espacios en blanco los caracteres ingresados con la barra espaciadora, los espacios ingresados con la tecla de tabulación y los caracteres de nueva línea ingresados con una tecla ENTER.
Lo que debe tener en mente con respecto a los espacios en blanco es que para JavaScript cualquier secuencia excesiva de caracteres de espacio en blanco es ignorada, de modo que para JavaScript será lo mismo tener cualquiera de las siguientes instrucciones:
x = x + 1;
x         =        x       +       1;
x
=
x+1
;
Debemos concluir entonces que el uso de excesivos espacios en blanco es más una conveniencia del programador que del intérprete de las secuencias de comando. El uso intencionado de excesivos espacios en blanco sirve exclusivamente para volver el código más legible a los programadores.

Comentarios.

Un aspecto indispensable a la hora de digitar código para cualquier programador es documentarlo, lo que significa, que es muy importante comentar el código a medida que se va ingresando
Los comentarios son anotaciones relevantes que se ingresan directamente dentro del código fuente de una secuencia de comandos con el propósito de indicar el propósito del uso de una función, de una o más variables, de la utilización de una sentencia condicional o bucle, tanto para el mismo programador, como para cualquier otro que vaya a utilizar o modificar ese código.
En JavaScript se pueden utilizar comentarios de una línea o comentarios de bloque. Se utiliza la secuencia de caracteres compuesta por dos barras inclinadas consecutivas (//) para el comentario de una línea. En tanto que se utiliza la secuencia de caracteres compuesta por una barra inclinada y un asterisco para abrir un comentario de bloque y un carácter asterisco seguido de una barra inclinada para cerrarlo.
Ejemplos:
var edad = 25; //Almacena la edad del usuario.
/* La función square espera un argumento o parámetro numérico y devuelve el cuadrado de ese valor */
function square(x){
     return x * x;
}


Tipología débil.

JavaScript es un lenguaje que permite trabajar con variables sin necesidad de declarar de qué tipo son, como es el caso de lenguajes fuertemente tipificados como lenguaje C++, Java o Visual Basic. En JavaScript el tipo de dato es deducido del contexto en que es utilizada, esto es, en el momento en que se le asigna un valor. Así si se le asigna un número, entonces la variable asumirá que su tipo es un número, si por el contrario, se le asigna una cadena de caracteres, entonces JavaScript entenderá que la variable es una cadena. Lo mismo aplica para un datos booleano. Así, si en determinado momento el valor de una variable numérica fuera cambiado a una cadena, el tipo de dato de dicha variable cambiará de forma automática. No lanzará un error, como es el caso en lenguajes fuertemente tipificados.
La tipología débil de JavaScript obliga a tener muchas precauciones, ya que aunque pareciera ser una bendición, no tener que declarar las variables de un tipo específico antes de usarlas, también puede conllevar ambigüedades potenciales, sobre todo en el uso de operadores como el "+", que es utilizado tanto para la suma numérica, como para la concatenación de cadenas. De modo que:
document.write("3" + 6);

Aparentemente, el resultado de la expresión anterior debería ser 9; sin embargo, observará que será 36 al ejecutarse el script, ya que el operador "+" tiene como prioridad la concatenación al intentar sumar un dato cadena con otro numérico.


Instrucciones.
Las instrucciones constituyen la esencia de un lenguaje como JavaScript, ya que es lo que el intérprete analiza para realizar las acciones específicas.
En JavaScript, las instrucciones se pueden terminar con un carácter de punto y coma (;) o con un carácter de retorno de carro (ENTER). A pesar de que pueden utilizarse uno u otro, es conveniente que se use el punto y coma como recomendación.

Ejemplos:
var x, y;
x = 2;
y = 5;
x = x + 3;
y = y - 2;

_________________________________________________________________________
var x, y
x = 2
y = 5;
x = x + 3;
y = y - 2;


Si se van a colocar dos o más instrucciones en una misma línea, la única posibilidad sería utilizar el punto y coma como separador de instrucciones.

Ejemplo:
x = 5; y = 12; z = 8;

Para crear un bloque de instrucciones se deben utilizar las llaves, iniciando el bloque con la apertura de una llave ({) y cerrando el bloque con una llave de cierre (}). Las situaciones donde es necesario definir un bloque de instrucciones son diversas, por ejemplo, la definición de las instrucciones que comprenden una función, la delimitación de las instrucciones que están dentro de una estructura de control, como las sentencias condicionales o repetitivas, entre otras que iremos conociendo a medida avancemos en este tutorial.

Definiciones básicas de JavaScript

Lo primero que haremos antes de comenzar de lleno a conocer la sintáxis del lenguaje JavaScript y la forma en que ingresaremos código de JavaScript dentro de un documento HTML es definir una base de términos comunes cuando se habla de lenguajes de programación y de scripts que nos permitirán a lo largo de este blog o artículo transmitir los contenidos de forma clara y concisa.

Terminología básica de lenguajes de programación y de scripts
Nombre Definición Ejemplo
Token Unidad léxica indivisible más pequeña de un lenguaje. Dicho de otro modo, podemos definirlo como una secuencia consecutiva de caracteres que tendría un significado completamente distinto si fueran separados por un espacio en cualquier posición. Identificador y palabra clave son ejemplos de token. Literales como 3.14159 y "¿Estás seguro que deseas cerrar la página?"
Literal Un valor encontrado directamente en el script. Valores concretos como 5.25 (literal numérico),
"Se han guardado los datos" (literal de cadena)
y [2, 4, 6] (literal de arreglo o matriz).
Identificador Nombre asignado a una variable, constante, objeto, función o etiqueta dentro de un programa o secuencia de comando. x, PI, registro, sueldo, etc.
Operador Elementos token incorporados del lenguaje que realizan operaciones como asignación, suma, resta, multiplicación, división, concatenación, comparación de valores, etc. = (igual),
+ (suma y concatenación),
- (menos),
<= (menor o igual que),
etc.
Expresión Combinación de elementos token, a menudo literales o identificadores, combinados con operadores que pueden dar como resultado un valor específico. 2.0 (un token es considerado una expresión en su forma más simple),
var msg = "Esta es una cadena"; (operador de asignación),
(x + 2) * 3,
etc.
Instrucción Comando imperativo que provoca un cambio en el estado del entorno de ejecución, en el valor de una variable, una definición o el flujo de ejecución. Un programa puede definirse como una secuencia de instrucciones. x = x + 5;
return true;
if(x%2 != 2)
   alert(x + " es impar");
Palabra clave Palabra que es parte del lenguaje en sí. Las palabras clave no se pueden utilizar como identificadores. if, switch, while, do, function, var, etc.
Palabra reservada Palabra que se podría convertir en parte del lenguaje en sí. También las palabras reservadas no se pueden utilizar como identificadores, aunque esta restricción a veces no está impuesta de forma estricta. class, const, public, etc.

¿Qué se puede hacer con JavaScript?

Uno de los aspectos más importantes de dar a conocer es todo lo que puede hacer con el lenguaje JavaScript, ya que esto puede servir para entusiasmar a los que por curiosidad han decidido comenzar a aprender este lenguaje. Realmente, las cosas que se pueden hacer con JavaScript son muy variadas, entre las más destacadas están:
  1. Puede obtener la información sobre el navegador que está usando el usuario, la versión del mismo, el sistema operativo sobre el que se está ejecutando e, incluso la resolución de pantalla que tiene configurada en su computadora.
  2. Puede trabajar con diálogos emergentes e interactivos creados con elementos div, en lugar de ventanas emergentes, que por razones de seguridad y diseño han dejado de utilizarse.
  3. Puede crear sistemas de menú sofisticados con submenús emergentes que se activan con la acción del usuario.
  4. Se pueden validar los valores que se ingresan en los campos de formulario antes de que sean enviados al servidor.
  5. Puede crear árboles de navegación para facilitar a los usuarios moverse de una página a otra por su sitio web.
  6. Puede crear efectos de sustitución de imágenes controlados por la acción de colocar el puntero del ratón o retirarlo de la misma.
  7. Puede crear algunas animaciones como transiciones de imágenes y objetos de una página web.
  8. Puede cambiar la posición de elementos HTML en la página web de forma dinámica o controlada por el movimiento del puntero del ratón.
  9. Puede redirigir al usuario de una página a otra, sin necesidad de un enlace estático.
  10. Puede realizar algunos cálculos con los valores ingresados en campos de formulario.
  11. Puede obtener la fecha del sistema operativo donde se está ejecutando la página web en el cliente.
  12. Se pueden crear sofisticados controles de calendario para seleccionar una fecha, en lugar de que sea ingresado manualmente por los usuarios en campos de formulario.

Estos son algunos usos, destacando el hecho que se han omitido algunos usos que con el paso del tiempo han quedado desaconsejados o que, con la evolución de los lenguajes (X)HTML y CSS, han quedado en manos de aquéllos y ya no de JavaScript.

Versiones de JavaScript y soporte de los navegadores

Antes de continuar es necesario mencionar las distintas versiones de JavaScript y los avances que con cada una ha venido teniendo el lenguaje y el soporte que los distintos navegadores le han venido dando con el paso del tiempo.
Hay que destacar también que junto a la evolución del lenguaje JavaScript, también han venido evolucionando el lenguaje HTML, con su versión más reciente, la 5.0 que ya es soportada por buena parte de los navegadores modernos, y del lenguaje CSS, que también ya tiene soporte de la versión 3.0 también, por buena parte de dichos navegadores. Como siempre, con el Internet Explorer hay que dedicar algún esfuerzo y mucho tiempo adicional para lograr compatibilidad.
Las distintas versiones que se han conocido y a las que la mayor parte de navegadores modernos han dado soporte es a las siguientes:
  • JavaScript 1.0: Nació junto a Netscape 2. Cuando se lanzó este navegador, los creadores de Netscape crearon también este lenguaje, soportando una gran cantidad de instrucciones y funciones.
  • JavaScript 1.1: Apareció junto a la versión 3 de Netscape y del Internet Explorer 3 incorporando unas pocas funciones más que su versión anterior, entre ellas el tratamiento de imágenes de forma dinámica y la posibilidad de creación de matrices (arrays).
  • JavaScript 1.2: Se lanzó junto con la aparición de las versiones 4.0 de los navegadores más populares de ese momento: Netscape e Internet Explorer. El principal problema con esta versión fue la distinta implementación que le dieron ambas empresas Netscape y Microsoft producto de la constante lucha que mantuvieron por la obtención de la mayor parte del mercado.
  • JavaScript 1.3: Versión que fue lanzada con la aparición de las versiones 5.0 de ambos navegadores. Con esta versión se lograron ciertos avances en busca de la estandarización; sin embargo, siempre hay detalles que considerar a la hora de la implementación.
  • JavaScript 1.5: Es una versión completamente compatible con el estándar ECMA-262, Edition 3.
  • JavaScript 1.6, 1.7 y 1.8: Al parecer, a partir de la versión 1.6 prácticamente solo el navegador Firefox implementa soporte completo de todas sus características.
En la siguiente dirección encontrará el detalle del soporte que los distintos naveadores ampliamente conocidos dan al lenguaje JavaScript:
Tabla de compatibilidad entre navegadores de las distintas versiones de JavaScript.

Relación entre JavaScript y Java

Sinceramente, este es un punto que ni siquiera debería discutirse por el hecho de que no existe ninguna relación entre un lenguaje y otro. De hecho, el único parecido, a parte de algunos detalles de la sintaxis, está en el nombre. Es por esto que en muchos textos y en muchos sitios web se suele hacer una comparación como la que mostraremos a continuación, haciendo uso de una tabla para facilitar la lectura.

JavaScipt Java
JavaScript es un lenguaje interpretado en un navegador a medida que la página es cargada en el navegador. Java es un lenguaje de programación compilado que generalmente requiere un entorno de desarrollo.
JavaScript es un lenguaje basado en objetos pero que dista todavía de todas las exigencias de la Programación Orientada a Objetos, aunque si pueden simularse objetos mediante algunos artificios de programación que pueden parecer complejas abstracciones de programación para los mortales. Se dice que en JavaScript es posible utilizar los objetos, pero no se brindan las herramientas nativas para crear nuestros objetos propios. Java es un lenguaje de programación completamente orientado a objetos ya que provee todos los elementos necesarios para la creación de clases, implementación de la herencia y polimorfismo.
El lenguaje JavaScript se puede insertar (embeber) dentro del código HTML del documento web haciendo uso de etiquetas especiales. El lenguaje Java debe ser referenciado desde el código HTML, no existe una forma de incorporarlo directamente dentro del propio documento web. Los códigos de Java se crean en pequeños archivos a los que se llama Applets
JavaScript permite trabajar con variables y tipos de datos sin necesidad de declararlos. Esto se debe a la característica de ser un lenguaje débilmente tipificado. En Java todas las variables y datos utilizados deben ser declarados de forma obligada para poder ser ejecutados. Esta característica hace que Java sea un lenguaje fuertemente tipificado.
En JavaScript se produce un enlazado dinámico de objetos. Esto significa que la validación de las referencias a objetos se realizan en tiempo de ejecución; es decir, en el momento en que el navegador intenta cargar la página web. En Java se produce un enlazado estático de los objetos, lo cual quiere decir que la validación de las referencias a objetos se realiza en tiempo de compilación.

¿Qué se necesita para crear scripts de JavaScript?

Básicamente, para desarrollar guiones, secuencias de comando o scripts de JavaScript basta con un editor de texto, tan básico como el Bloc de notas de Windows, el TextEdit de Mac o el gEdit de Linux.


La edición de un script JavaScript puede realizarse dentro del mismo documento HTML (archivo .html) o en un documento independiente (archivo .js) que luego tendrá que vincular al documento html sobre el que actuará.

Para poder visualizar el resultado de su guión o secuencia de comandos JavaScript, necesitará de un navegador. Hoy en día las preferencias por los navegadores está muy dispersa. Atrás han quedado los días en que solo habían dos opciones Internet Explorer o Netscape.

Lenguaje JavaScript

El lenguaje JavaScript es uno de los lenguajes de script interpretado en el lado del cliente utilizado ampliamente para el desarrollo de aplicaciones web. Una de sus principales ventajas es que es reconocido por la totalidad de navegadores que conocemos en la actualidad por lo que no se necesita de ningún programa adicional instalado en la computadora de los clientes.


Entre los principales usos que se le da al lenguaje JavaScript están:

  • Validación de entradas de campos de formulario.

  • Generación de efectos visuales en el navegador.

  • Integración de galerías de imágenes interactivas con el usuario.

  • Creación de sofisticadas interfaces de menús desplegables para la navegación en un sitio web.

  • Uso de atractivos campos de selección de fechas en formularios usando calendarios dinámicos.

  • Ingreso de contenidos mediante complejos editores de texto enriquecido.