Introduccion a AJAX - Web de jEsuSdA 8
Introduccion a AJAX - Web de jEsuSdA 8
Introduccion a AJAX - Web de jEsuSdA 8
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Introducción a <strong>AJAX</strong><br />
Capítulo 2. JavaScript básico<br />
En ocasiones, el método toFixed() no funciona como <strong>de</strong>bería, <strong>de</strong>bido a los problemas que<br />
sufren la mayoría <strong>de</strong> lenguajes <strong>de</strong> programación con los números <strong>de</strong>cimales (en realidad, se<br />
<strong>de</strong>nominan "números <strong>de</strong> coma flotante"):<br />
var numero1 = new Number(0.235);<br />
var numero2 = new Number(1.235);<br />
numero3 = numero1.toFixed(2); // numero3 = 0.23<br />
numero3 = numero2.toFixed(2); // numero3 = 1.24<br />
Como se ve en el ejemplo anterior, el redon<strong>de</strong>o <strong>de</strong> los <strong>de</strong>cimales no funciona <strong>de</strong> forma<br />
consistente, ya que el número 5 a veces incrementa el <strong>de</strong>cimal anterior y otras veces no. De la<br />
misma forma, se pue<strong>de</strong>n producir errores <strong>de</strong> precisión en operaciones aparentemente sencillas,<br />
como en la siguiente multiplicación:<br />
var numero1 = new Number(162.295);<br />
var numero2 = numero1 * new Number(100);<br />
// numero2 no es igual a 16229.5<br />
// numero2 = 16229.499999999998<br />
Los errores <strong>de</strong> redon<strong>de</strong>o afectan <strong>de</strong> la misma forma a las variables numéricas creadas con tipos<br />
<strong>de</strong> datos primitivos. En cualquier caso, al igual que suce<strong>de</strong> con Boolean, se recomienda utilizar el<br />
tipo <strong>de</strong> dato primitivo para los números, ya que la clase Number no aporta mejoras significativas.<br />
2.4.2.4. Variables <strong>de</strong> tipo String<br />
La clase String representa una ca<strong>de</strong>na <strong>de</strong> texto, <strong>de</strong> forma similar a los tipos <strong>de</strong> datos primitivos:<br />
var variable1 = new String("hola mundo");<br />
El objeto <strong>de</strong> tipo String es el más complejo <strong>de</strong> JavaScript y contiene <strong>de</strong>cenas <strong>de</strong> métodos y<br />
utilida<strong>de</strong>s, algunos <strong>de</strong> los cuales se verán más a<strong>de</strong>lante. Como ya se ha comentado, siempre que<br />
sea necesario JavaScript convierte <strong>de</strong> forma automática las ca<strong>de</strong>nas <strong>de</strong> texto <strong>de</strong> dato primitivo a<br />
dato <strong>de</strong> referencia. De esta forma, no es obligatorio crear objetos <strong>de</strong> tipo String para acce<strong>de</strong>r a<br />
todas las utilida<strong>de</strong>s disponibles para las ca<strong>de</strong>nas <strong>de</strong> texto.<br />
2.4.2.5. Operador instanceof<br />
El operador typeof no es suficiente para trabajar con tipos <strong>de</strong> referencia, ya que <strong>de</strong>vuelve el<br />
valor object para cualquier objeto in<strong>de</strong>pendientemente <strong>de</strong> su tipo. Por este motivo, JavaScript<br />
<strong>de</strong>fine el operador instanceof para <strong>de</strong>terminar la clase concreta <strong>de</strong> un objeto.<br />
var variable1 = new String("hola mundo");<br />
typeof variable1; // <strong>de</strong>vuelve "object"<br />
instanceof String; // <strong>de</strong>vuelve true<br />
El operador instanceof sólo <strong>de</strong>vuelve como valor true o false. De esta forma, instanceof no<br />
<strong>de</strong>vuelve directamente la clase <strong>de</strong> la que ha instanciado la variable, sino que se <strong>de</strong>be comprobar<br />
cada posible tipo <strong>de</strong> clase individualmente.<br />
www.librosweb.es 20