Fundamentos Javascript

DECLARACION DE VARIABLES:

Es importante definir el scope (ambito de una variable en javascript).

Cuando definimos una variable y usamos el keyword var , estamos definiendo la variable
dentro del ambito donde hacemos esa declaracion en nuestro codigo (dentro de una funcion,
una funcion condicional (if, else), un bucle, etc..)

Si no usamos la keyword var estamos definiendo la variable en el ambito global, es decir
a nivel de window. , hay que tener cuidado con estas declaraciones porque podemos
estar sobreescribiendo alguna variable global de window y esto no es nada recomendable.

<html>
    <head>
    </head>
    <script type="text/javascript">
        variableA = "valor1"; //esta variable al no usar el keyword 'var' estara en el scope de window
        var variableB = "valor2"; //Esta variable estara en el scope a nivel de document
       
        if(1==1){
            var variableC ="valor3"; //su scope sera dentro de este if
            for(i=0;i<3;i++){
                var variableD="valor4"; //su scope es dentro de este bucle;
            }
        }
       
    </script>
    <body>
    </body>
</html>
<script>


DECLARACION MULTIPLE DE VARIABLES:

Esta desaconsejada totalmente este tipo de declaraciones:

var variableA = variableB = "miValor";

En este caso, las 2 variables valdran lo mismo si hacemos
alert(variableA); alert(variableB);

Pero el scope de la variableB es global (porque no usamos la keyword var) y por el contrario
el scope de la variableA no.

DECLARACION DE ARRAYS
Los arrays en javascript se pueden inicializar de 2 maneras:
1.Llamando al constructor de Array, esto inicializa y crea el array con ese tamaño:

var arr = new Array(3);  //llama al constructor e inicializa el array con ese tamaño
alert(arr.length); // el mensaje es un 3 , porque tiene tamaño de 3
alert(arr[0]); // devuelve undefined porque en esa posicion no hay elemento

2.Usando la declaracion literal con [], este inicializa introduciendo el valor/valore pasados:
var arr = [3];
alert(arr.length); // el mensaje es 1 , porque solo tiene un elemento
alert(arr[0]); // devuelve 3 que es el unico valor que tiene dentro

Aqui se ve mas claro
var arr = [3,5,6];
alert(arr.length); // el mensaje es 3 , porque tiene 3 elementos
alert(arr[0]); // devuelve 3
alert(arr[1]); // devuelve 5
alert(arr[2]); // devuelve 6

COMPARACION DE VARIABLES:

Para comparar variables tenemos varios operadores:
var variableA = '1'; //string
var variableB = 1;  //number

El comparador == primero convertira los valores de los datos al mismo tipo
y luego realizara la comparacion con lo cual:
alert(variableA == variableB);  //true

El comparador === no convierte y hace la comparacion por valor y tipo:
alert(variableA === variableB); //false porque uno es number y el otro string

Lo mismo ocurre con los operadores de negacion
alert(variableA != variableB); //false porque sus valores convertidos son el mismo

alert(variableB !=== variableB); //true porque sus tipos no son iguales con lo cual son distintos





typeof OPERATOR:

Se usa para determinar de que tipo es una determinada variable.
Esta instruccion retorna un string con alguno de estos literales:
"number"     si es un  numero
"string"     sies una cadena
"boolean"     si es un boolean
"object"     si es un objeto
null        si es null
"undefined"     si no esta definido
"function"     si es una funcion

Ejemplos:

var variableA = 2;
alert(typeof variableA); //retornara un string con el valor "number";

var n = function(){ alert ("hola amigo")};
alert(typeof n); //retornara un string con el valor "function"

var arr = [3,6,9];
alert(typeof arr); //retornara un string con el valor "object"

Para usar typeOf en alguna sentencia condicional deberiamos usar:
    if(typeOf variableA == "number"){
        ...
    }else if (typeOf variableA == "undefined"){
        .....
    }else{
        etc....
    }

Comentarios

Entradas populares de este blog

Subir campos Blob a BBDD (Oracle) con Java

Reiniciar usuario de SVN Subversion

Cucumber y Java - definiendo test de una manera amigable