2.1. Lo básico Indice 

JavaScript toma su sintaxis de los lenguajes de programación más conocidos, fundamentalmente C, aunque también algo de Pascal.

Filosofía general

Variables

Empecemos por decir que en Javascript NO hay tipificación de las variables, ni tampoco constantes. Por ende, tampoco se pueden definir nuevos tipos de variables, aunque sí nuevos tipos de objetos, como veremos.

Para usar una variable solo hemos de darle un valor con el signo =:

foo=15;
bar="Hola, viejo";

El punto y coma del final NO es realmente necesario si se separan las instrucciones líneas distintas, como suele ser el caso. No obstante, si deseamos escribir varias de ellas en la misma línea debemos usar el ; para separarlas.

Las variables pueden ser numéricas, cadenas (las cadenas se escriben entre comillas dobles o simples, es indiferente), booleanas (conteniendo los valores true o false) u objetos, y por supuesto matrices de ellas.
El tipo de la variable será el del primer valor que le asignemos. En los ejemplso anteriores foo es de tipo numérico, y bar lo es de tipo cadena.

En Javascript se intenta hacer conversiones de tipo siempre que haga falta. Así por ejemplo, si escribimos la siguiente sentencia:

foobar=foo+bar;

no obtendremos ningun error debido a tipos no compatibles ni nada de eso, sino que concatenará foo y bar cual si de dos cadenas se tratara.

Es más, si escribiéramos algo como;

bar="Esto es una cadena";
bar=15*2;
bar=bar*3;

el resultado final de la variable bar es 90. Es decir, también convierte cadenas a números cuando hace falta.

El ámbito de las variables es siempre el más amplio posible. Es decir, si usamos una variable fuera de cualquier función, desde ese momento estará disponible dentro de cualquier función como variable global.

En el siguiente ejemplo, la función suma_20_a_edad modifica la variable edad sumándole el número 20, pero sin que la variable se le pase como parámetro, sino que se usa como variable global (suponemos que tenemos la función definida en otro lado).

edad=27;
suma_20_a_edad();

Esto puede causar problemas de efectos laterales y podría darse el caso de que modificáramos una variable global en una función pensando que solo estamos cambiando una variable local, y todo por el hecho de haberles llamado igual.

Para evitar esto, podemos ponerle la palabra var antes de usar por primera vez la variable, para indicar que dicha variable es local a la función en que se está usando. Veamos un ejemplo:

function modifica_edad() {
  edad=edad+100;
}

function no_modifica_edad() {
  var edad=edad+100;
}

edad = 30;
modifica_edad();
no_modifica_edad();

En este ejemplo, tras llamar a modifica_edad() la variable global edad pasa de valer 30 a valer 130. Sin embargo, tras llamar a no_modifica_edad sigue con el valor 130.

Como se puede oberservar NO se le ha puesto la palabra var a la variable global dado que, en efecto, no es necesario pues va a ser global.

Sentencias

La sintaxis de las sentencias es similar a C.

Condicionales

if ( condicion ) {
   sentencias_true;
}  else {
   sentencias_false;
}

// *****************************

switch( variable ) {
  case valor :
  case valor : { sentencias; break; }
  case valor :
  case valor : { sentencias; break; }
  default: { sentencias; }
}

Iterativas

while( condicion ) {
  sentencias;
}

// *****************************

do {
  sentencias;
} while ( condicion );

// *****************************

for( inicializacion; condición; incremento ) {
  sentencias;
} 

Incrementos y operaciones con variables

variable++;   ++variable;   variable--;   --variable;
variable+=valor;   variable-=valor;   variable*=valor;   variable/=valor;
variable=(condicion)?valor_true:valor_false;

Comentarios

Con // obtendremos comentarios hasta el final de la línea.

Con /* .... */ obtendremos comentarios de varias líneas.


2.2. Declaración de Funciones Indice 

Como en muchos lenguajes, JavaScript permite declarar funciones. Quizá convenga recordar que una función no se ejecuta hasta que no es llamada. Es decir, podemos definir una función que use variables globales NO declaradas aún, si la llamamos una vez que dichas variables estén declaradas.

La forma de definir una función es la siguiente:

function nombre_funcion( [lista_parametros] ) {
   código;
   [return valor;]
}

Pongo lista_parametros y return valor; entre corchetes porque son opcionales.

Veamos un par de detalles: