Javascript es un lenguaje interpretado y orientado a html; por tanto, no necesitamos ningún compilador, nos basta y sobra con que nuestro navegador sea compatible con javascript (Hoy en día la mayoría de los navegadores de internet admiten Javascript, aunque en unos casos el navegador tiene deshabilitado por defecto la ejecución de scripts).
Sintaxis basica
Antes de empezar con las variables y demás, hay unas cuantas notas que deben tenerse en mente:
-
Aunque JavaScript se puede incluir directamente en un documento (X)HTML,
ocurre como las hojas de estilo: suele ser más útil como un archivo
independiente vinculado a cada documento que necesite de los
comportamientos definidos en él; así sólo hay que mantener unos pocos
archivos .js para actualizar los comportamiento de todo un sitio1. Para ello habría que incluir en el
head
del documento una línea como ésta:<script type="text/javascript" src="URL_de_archivo.js"></script>
- JavaScript es un lenguaje interpretado, no compilado. Significa que sólo se necesita el bloc de notas para programar un archivo .js, y vincularlo a una página para ver los resultados en un navegador.
- JavaScript es sensible al caso —y muy sensible, además—. Eso quiere decir que, por ejemplo, una variable llamada
cadena
es completamente distinta a otra llamadaCadena
, y que convar matriz = new Array();
se declara una matriz, pero conmatriz = new array();
no. - Aunque no es imprescindible, es una buena práctica que los enunciados terminen en un punto y coma (
;
). Si éste no existe, el intérprete de JavaScript considerará un salto de línea como el final de un enunciado. -
La sintaxis de los comentarios depende del número de líneas:
Los comentarios, por supuesto, no son interpretados por el agente de usuario.// …éste es un comentario de una sola línea… /* …éste es un bloque de comentarios que ocupa varias líneas… */
- Los bloques de código son un conjunto de enunciados
que deben interpretarse como una secuencia completa —como por ejemplo
una función—. Se indican con llaves (
{}
).
Las variables y sus tipos
Una variable no es más que un contenedor para un valor. Las variables se declaran por medio de la palabra clavevar
, pero a diferencia de otros lenguajes de programación en JavaScript no es necesario declarar su tipo. Unas líneas como éstas:
var a = 15;
var b = "gato";
Crea unas variables llamadas a
y b
que inicialmente tienen los valores de 15 y la palabra «gato» respectivamente.Las únicas limitaciones a la hora de crear variables son:
- Los nombres de las variables pueden comenzar por una letra, el guión bajo (
_
) y el símbolo de dolar ($
); el resto de los caracteres puede ser cualquier combinación de los anteriores, además de cifras. Así,registro_01
,$vínculos
,listaNodos
o_cuñao
1 son nombres correctos;1_lista_de_cosas
,elementos-lista
onuevo%elemento
no. - Los nombres de variables no pueden coincidir con palabras clave pertenecientes a la propia sintaxis de JavaScript, ni con las palabras reservadas, una lista de palabras que se considerá que en el futuro tendrán un significado propio.
Hay una serie de convenciones para nombrar variables:
En cuanto a su tipología, las variables se dividen en:- Notación camelCase:
Se escribe la primera palabra del nombre en minúscula, y si el nombre
consiste en varias, las siguientes se empiezan por mayúsculas:
listaCamposFormulario
. - Notación Pascal: Cada palabra que forme el nombre de la variable se empieza en mayúscula:
ListaCamposFormulario
. - Notación «tipo húngaro»: Cada
palabra que forme el nombre de la variable se empieza en mayúscula, como
en la anterior, pero inicialmente se escribe una minúscula que indica
el tipo de variable de la que se trata:
aListaCamposFormulario
; laa
indicaría que la variable es una matriz, en inglés array.
- Escalares (en inglés scalars): Son como las del código de arriba, un nombre al que se le asigna un único valor, aunque éste pueda modificarse luego.
- Matrices (en inglés arrays): Una variable que almacena una lista de valores, a los que se hace referencia por medio de un índice.
Escalares
Los escalares son variables que corresponden a lo que se conoce como tipos primitivos, que son los tipos de datos más simples que se pueden definir. Según esto, los esclares pueden ser:- Indefinidos: Son variables declaradas pero que aún no cuentan con un valor.
- Booleanos2: Son variables que sólo aceptan dos valores,
true
ofalse
,1
o0
. -
Numerales: Son valores numéricos
de 32 bits para los enteros y de 64 bits para los fraccionarios. Se
pueden expresar en decimal, octal o hexadecimal:
Eso sí, cuando se realizan operaciones con ellos, el resultado devuelto siempre es un valor decimal.var numeroDecimal = 17; // 17 en decimal var numeroOctal = 021; // 17 en octal, se indica con un 0 delante var numeroHexadecimal = 0x11; // 17 en hexadecimal, se indica con 0x delante
-
Cadenas literales: Son un conjunto de caracteres alfanuméricos. Se declaran por medio de comillas:
var nombre = "Irene"; var mascota = "Gatagorda";
- Nulos: En realidad no es un tipo, sino un valor que puede devolver JavaScript cuando por medio de
typeof
pedimos el tipo de variable de una que no corresponde a uno de los tipos primitivos.
Matrices
Una matriz almacena diversos valores, a los que se accede haciendo referencia al índice del valor. Cuando se conocen los valores, se pueden declarar de esta manera:
var vientos = new Array("Bóreas","Céfiro","Noto","Euro");
o de esta otra:
var vientos = new Array();
vientos[0] = "Bóreas";
vientos[1] = "Céfiro";
vientos[2] = "Noto";
vientos[3] = "Euro";
aunque también se pueden crear sin asignarles valores inmediatamente:
var vientos = new Array();
Para acceder a los valores almacenados, simplemente
habría que indicar el índice —la posición— que ocupan, comenzando por el
cero. Así, para apuntar al valor Céfiro
emplearíamos vientos[1]
.Las matrices pueden, asu vez, ser unidimensionales, como la anterior, o multidimensionales, cuando se trata de una matriz compuesta no por escalares, sino por otras matrices:
var sucesiones = new Array();
suceciones[0] = new Array("2","4","6","8","10");
suceciones[1] = new Array("2","4","8","16","32");
Para acceder a sus valores se hace referencia al índice
que ocupa la segunda matriz dentro de la primera, y a la posición del
valor que se quiere extraer en aquella. Por ejemplo, si quisiéramos
extraer el valor 16
, haríamos referencia a él por medio de sucesiones[1][3]
.Al principio puede resultar un tanto confuso, pero resulta mucho más sencillo si se piensa en una matriz multidimensional como una tabla de datos:
COLUMNAS (Matrices secundarias) 0 1 2 3 4
FILAS (Matriz principal) 0 |2| |4| |6| | 8| |10|
1 |2| |4| |8| |16| |32|
sucesiones[1][3]
sería como pedir «dime el valor que se encuentra en la fila 1, columna 3».Operadores aritméticos
Los operadores aritméticos son los que recojo en la tabla siguiente:Operador | Operación | Sintaxis |
---|---|---|
+ |
Adición |
|
- |
Sustracción |
|
* |
Multiplicación |
|
/ |
División |
|
% |
Módulo de división |
|
Cuando realizamos una operación como ésta:
var a = 8;
var b = 9;
total = a + b;
total adquiere el valor de 17. Sin embargo, cuando se no se trata de numerales, JavaScript concatena las cadenas:
var a = "cuenta";
var b = "gotas";
total = a + b;
Aquí total adquire el valor de «cuentagotas».
Lo mismo ocurre cuando se intenta sumar un número a una cadena;
JavaScript primero convierte el numeral en una cadena, y después
concatena:
var a = 8;
var b = "gotas";
total = a + b;
El resultado sería «8gotas». Hay que tener esto en cuenta
cuando se obtenga un resultado extraño de una opración. Un error común
cuando se empieza a trabajar con variales es éste:
var a = "8";
var b = "9";
total = a + b;
total no tendrían un valor de 17, sino de «89».Para el resto de operadores aritméticos, si se emplean tipos de variable que no sean números, el resultado es el valor
NaN
, Not a Number.Por último, para operaciones mataméticas más complejas, necesitaríamos emplear el objeto Math, que veremos más adelante.
Operadores comparativos
Como su nombre indica, estos operadores se emplean para realizar comparaciones entre los valores de las variables:Operador | Significado | Sintaxis |
---|---|---|
> |
Mayor que |
|
< |
Menor que |
|
== |
Igual a |
|
!= |
Distinto de |
|
>= |
Mayor o igual a |
|
<= |
Menor o igual que |
|
=== |
Idéntico a |
|
!== |
No idéntico a |
|
==
y!=
: Comparan las series de caracteres variables, y su orden.>
,<
,>=
,<=
: Comparan el orden alfabético de los caracteres, para ver cuál sería anterior, característica que se iguala a mayor.
var a = "ying";
var b = "yang";
alert(a==b); // devuelve false
alert(a!=b); // devuelve true
alert(a>b); // devuelve true
alert(a<b); // devuelve false
alert(a>=b); // devuelve true
alert(a<=b); // devuelve false
Por su parte, con los comparadores de identidad no sólo debe darse coincidencia del valor, sino del tipo de variable. Así:
var a = 17;
var b = "17";
alert(a==b);
Resulta true
, porque para poder comparar
ambos valores JavaScript toma ambos como literales y establece que los
caracteres y su orden son los mismos. Sin embargo, si comprobamos su
identidad:
var a = 17;
var b = "17";
alert(a===b);
el resultado es false
, porque no se trata del mismo tipo de variable.
No hay comentarios:
Publicar un comentario