4.1 Valores y Tipos

Como aseguramos en el Capitulo 1, JavaScript tiene valores tipados, no variables tipadas. Las siguientes tipos nativos estan disponibles:

  • string
  • number
  • boolean
  • null y undefined
  • object
  • symbol (new to ES6)

JavaScript proporciona un operador typeof que puede examinar un valor y decirle cual es su tipo:

var a;
typeof a;               // "undefined"

a = "hello world";
typeof a;               // "string"

a = 42;
typeof a;               // "number"

a = true;
typeof a;               // "boolean"

a = null;
typeof a;               // "object" -- extraño, bug

a = undefined;
typeof a;               // "undefined"

a = { b: "c" };
typeof a;               // "object"

El valor retornado del operador typeof siempre es uno de sus seis (siete en ES6!) valores en tipo string. Por eso, typeof "abc" retorna "string" y no string.

Observe como en este fragmento la variable a contiene cada diferente tipo de valor, y apesar de las apariencias, typeof a no esta preguntado por el "tipo de a", sino mas bien "el tipo de valor actual en a". Solo los valores tienen tipos en JavaScript; las variables tan solo son contenedores para estos valores.

typeof null es un caso interesante, ya que erroneamente este retorna un "objeto", cuando usted espera que este retorne null.

Advertencia: Este es un bug/error antiguo en JavaScript, y uno que probablemente nunca valla a ser arreglado. Demasiado codigo en la web trabaja con este bug/error y por lo tanto arreglarlo podria causar muchos mas bugs!

Note tambien, a = undefined. Explicitamente definimos a a el valor undefined, aun asi su comportamiento no es diferente de la variable a que no tiene un valor establecido aun, como en la expresion var a; de la linea inicial del framento de codigo. Una variable puede tener un estado de valor "undefined" de mucha maneras, incluyendo funciones que no retornan valores y el uso del operador void.

results matching ""

    No results matching ""