07objetos

download 07objetos

of 16

Transcript of 07objetos

  • 7/25/2019 07objetos

    1/16

    26 de 69 http://www.masterlinux.org EFGM 2000-2007

    OBJETOS

    Aunque la mayora de los autores as lo hacen, no estoy muyconvencido de que los objetos se puedan clasificar como un tipo de dato. Sinembargo, dado que JavaScript es un lenguaje basado en objetos, consideroimportante tratar este tema antes de adentrarnos en el manejo de otrosconceptos tales como, estructuras condicionales y de control.

    Un objeto es la abstraccin de un elemento que no necesariamente

    corresponde a un ente fsico en el modelo de una aplicacin. Un objeto es unencapsulador de informacin, que est compuesto por dos elementos bsicos:los atributos y los mtodos. Los primeros, son las variables del objeto,mientras que los segundos son las funciones que el objeto realiza con susatributos.

    La comunicacin entre objetos se realiza mediante mensajes, quepermiten enviar solicitudes a las cuales el objeto responde a travs de una ovarias de las funciones que tiene implementadas.

    En otras palabras los objetos son componentes prestadores de serviciosque tienen sus propias variables y funciones, las cuales no son susceptibles deser cambiadas en tiempo de ejecucin.

    Para ilustrar un poco el concepto de objeto, piense por ejemplo en uncarro:

    Un carro tiene asociadas caractersticas tales como: cilindraje, tipo decombustible que usa, color, nmero de velocidades, modelo, nmero de puestos,nmero de puertas, etc. Las anteriores son las variables o atributos del objetocarro. Adems, con un carro se pueden realizar acciones como: encender yapagar el motor, acelerar, frenar, etc. Estas ltimas constituyen las funciones omtodos del objeto carro.

    El concepto tradicional de programacin estructurada supone la ejecucinde una serie de tareas y funciones que son realizadas una tras otra sobre ciertasvariables de entrada, para producir un resultado. En el paradigma de la

    programacin orientada a objetos (OOP), stos son responsables de larealizacin de tareas especficas sobre datos propios.

    Una vez definido con sus atributos y mtodos, un objeto puede serreutilizado o redefinido conservando sus caractersticas iniciales.

  • 7/25/2019 07objetos

    2/16

    27 de 69 http://www.masterlinux.org EFGM 2000-2007

    Creacin de Objetos en JavaScript

    JavaScript dispone de dos formas para la creacin de objetos: En laprimera simplemente se asigna un nombre al objeto y se inicializan sus atributosde la misma manera como se inicializa una variable. La segunda forma consiste

    en crear una funcin constructora del objeto para luego generar copias oinstancias del objeto mediante el operador new.

    Med i a n t e l a i n i c i a l i z a c i n

    La sintaxis para la creacin de objetos mediante la inicializacin de losmismos es muy similar a la declaracin de estructuras de datos en C:

    NombreObjeto ={

    atributo1:valor1,atributo2:valor2,...atributoN:valorN

    };

    Como ejemplo, en las siguientes lneas se crea el objeto estudianteconlos atributos nombres, apellidos, semestrey promedio.

    estudiante ={

    nombres:"",apellidos:"",semestre:3,promedio:1

    };

    El operador punto (.) permite acceder o referirse a cualquiera de losatributos de un objeto. En las siguientes lneas se asignan valores a algunos delos atributos del objeto estudiante definido anteriormente:

    estudiante.nombres="Andrs Francisco";estudiante.apellidos="Gaitn Guzmn";estudiante.promedio=estudiante.promedio*4.3;

    Ahora los atributos nombres, apellidosy promediotienen como valoresAndrs Francisco, Gaitn Guzmn y 4.3 respectivamente, mientras que elvalor de semestrecontina siendo 3. Observe que para acceder a cualquiera delos atributos de un objeto debe usar la siguiente sintaxis:

    nombreObjeto.nombreAtributo

    estudiante ={

    nombres:"",apellidos:"",semestre:3,promedio:1

  • 7/25/2019 07objetos

    3/16

    28 de 69 http://www.masterlinux.org EFGM 2000-2007

    };

    estudiante.nombres="Andrs Francisco";estudiante.apellidos="Gaitn Guzmn";estudiante.promedio=estudiante.promedio*4.3;

    document.write("El estudiante "+estudiante.nombres + " " +

    estudiante.apellidos + " de " + estudiante.semestre +" semestre, obtuvo como promedio " +estudiante.promedio);

    Objeto Simple

    El anterior ejemplo mostrar en pantalla:

    El estudiante Andrs Francisco Gaitn Guzmn de 3 semestre, obtuvocomo promedio 4.3

    Un objeto puede tener como atributos a otros objetos:

    estudiante ={

    nombres:"",apellidos:"",semestre:3,promedio:0,notasMaterias:{

    fisica:4.4,matematicas:4.0,programacion:4.2

    }

    };

    Al objeto estudiante se le ha agregado como atributo el objetonotasMaterias, compuesto a su vez por tres variables: fsica, matematicas yprogramacion (note la falta de tildes en las palabras acentuadas). Se puedeahora calcular el promedio del estudiante con base en las notas obtenidas:

    estudiante.promedio=(estudiante.notasMaterias.fisica+estudiante.notasMaterias.matematicas+estudiante.notasMaterias.programacion)/3;

    El siguiente es el listado completo de nuestra aplicacin, que mostrar;los valores de cada uno de los atributos del objeto estudiante:

    estudiante ={

    nombres:"",apellidos:"",semestre:3,promedio:0,notasMaterias:{

  • 7/25/2019 07objetos

    4/16

    29 de 69 http://www.masterlinux.org EFGM 2000-2007

    fisica:4.4,matematicas:4.0,programacion:4.2

    }};

    estudiante.nombres="Andrs Francisco";

    estudiante.apellidos="Gaitn Guzmn";estudiante.promedio=(estudiante.notasMaterias.fisica+estudiante.notasMaterias.matematicas+estudiante.notasMaterias.programacion)/3;

    document.write("El estudiante "+estudiante.nombres + " " +estudiante.apellidos + " de " + estudiante.semestre +" semestre, obtuvo como promedio " +estudiante.promedio);

    Objeto Simple

    Mediante el uso de una funcin constructora

    La creacin de objetos utilizando una funcin constructora, supone comoya se haba mencionado la ejecucin de dos pasos: definir el constructor y luegoinstanciar el objeto. La sintaxis de la funcin constructora es la siguiente:

    functionnombreObjeto(valor1, valor2, ... valorN){

    this.atributo1 = valor1,this.atributo2 = valor2,

    ...this.atributoN = valorN}

    Las expresiones valor1, valor2, ... valorN; pasados como parmetros ala funcin constructora, son los valores que se asignarn a los atributosatributo1, atributo2, ... atributoN, respectivamente.

    La creacin de un nuevo objeto con las caractersticas del creadomediante la funcin constructora, se conoce como instanciacin. Su sintaxis escomo sigue:

    nombreNuevoObjeto=new nombreObjeto(valor1, valor2, ... valorN)

    El objeto estud se puede crear mediante una funcin constructora de lasiguiente manera:

    function estud(nombres, apellidos, semestre, promedio){

    this.nombres=nombres,this.apellidos=apellidos,this.semestre=semestre,this.promedio=promedio

    };

  • 7/25/2019 07objetos

    5/16

    30 de 69 http://www.masterlinux.org EFGM 2000-2007

    y ahora se puede crear una instancia de estudllamada estudiante:

    estudiante = new estud("Andrs Francisco", "Gaitn Guzmn", 3, 1);

    Al crear una instancia de un objeto, este no slo hereda los atributos, sino

    que adems le son asignados a estos ltimos los valores pasados comoparmetros. En el ejemplo anterior, el objeto estudiante tiene los mismosatributos que el constructor estud (nombres, apellidos, semestre ypromedio) y Andrs Francisco, Gaitn Guzmn, 3 y 1 son los valoresactuales de dichos atributos.

    El acceso o referencia a cualquier atributo de un objeto es independientede la forma como fue creado. En la siguiente lnea, el valor del promedio delobjeto estudiante que antes vala 1, tendr como nuevo valor 4.3:

    estudiante.promedio=estudiante.promedio*4.3;

    Las siguientes lneas muestran el cdigo de una pgina que despliega los

    mismos resultados obtenidos en el ejemplo anterior, slo que aqu el objeto hasido creado utilizando la funcin constructora:

    function estud(nombres, apellidos, semestre, promedio){

    this.nombres=nombres,this.apellidos=apellidos,this.semestre=semestre,this.promedio=promedio

    };

    estudiante = new estud("Andrs Francisco", "Gaitn Guzmn", 3, 1);estudiante.promedio=estudiante.promedio*4.3;

    document.write("El estudiante"+estudiante.nombres+" "+estudiante.apellidos + " de " + estudiante.semestre +" semestre, obtuvo como promedio " +estudiante.promedio);

    Objeto Simple

    Una vez instanciado un objeto, su estructura puede ser redefinida sin

    que se afecte el constructor. Se puede por ejemplo, agregar un atributo nuevo alobjeto estudiante y esta accin no tendr repercusiones en el objeto originalestud. Para ilustrar lo anterior, al objeto estudiante arriba creado, se le agregael atributo notaMaterias, que a su vez es un objeto. Veamos:

    notas = {fisica:4.4, matematicas:4.0, programacion:4.2};

    En la lnea anterior se define, mediante el mtodo de inicializacin elobjeto notas. A continuacin se agrega este nuevo atributo al objeto estudiante:

  • 7/25/2019 07objetos

    6/16

    31 de 69 http://www.masterlinux.org EFGM 2000-2007

    estudiante.notaMaterias=notas;

    Ahora se calcula el promedio de Andrs Francisco, con base en los valoresdel atributo notaMaterias:

    estudiante.promedio=(estudiante.notaMaterias.fisica+estudiante.notaMaterias.matematicas+estudiante.notaMaterias.programacion)/3;

    Si se crea un nuevo objeto por ejemplo, estuadiante1, utilizando elconstructor estud, estuadiante1 tendr como atributos: nombres, apellidos,semestrey promedio.

    El siguiente es el cdigo del script cuyos resultados sern similares a losobtenidos en el ejemplo de objetos construidos mediante inicializacin:

    function estud(nombres, apellidos, semestre, promedio){

    this.nombres=nombres,this.apellidos=apellidos,this.semestre=semestre,this.promedio=promedio

    };

    estudiante = new estud("Andrs Francisco", "Gaitn Guzmn", 3, 1);

    notas = {fisica:4.4, matematicas:4.0, programacion:4.2};

    estudiante.notaMaterias=notas;

    estudiante.promedio=(estudiante.notaMaterias.fisica+estudiante.notaMaterias.matematicas+estudiante.notaMaterias.programacion)/3;

    document.write("El estudiante "+estudiante.nombres + " "+estudiante.apellidos + " de " + estudiante.semestre +" semestre, obtuvo como promedio " +estudiante.promedio);

    El anterior script, escrito dentro de una pgina HTML producir elsiguiente resultado:

    El estudiante Andrs Francisco Gaitn Guzmn de 3 semestre, obtuvocomo promedio 4.2

    Mtodos asociados a objetos

    Como ya se mencion, un objeto consta de atributos y mtodos, siendoestos ltimos, funciones asociadas al objeto que se pueden llamar encualquier momento.

    Para agregar un mtodo a un objeto se deben seguir dos pasos: definir lafuncin y luego asociarla al objeto como si fuera un atributo ms. En el siguienteejemplo se trabaja con el objeto caja cuyos atributos son x, y, z (longitud de loslados de una caja), y la funcin calculoVolumen, que devuelve el producto dex*y*z:

  • 7/25/2019 07objetos

    7/16

    32 de 69 http://www.masterlinux.org EFGM 2000-2007

    Untitled

    /* Definicin de la funcin calculoVolumen que devuelve el producto de x*y*z */function calculoVolumen()

    {return (this.x*this.y*this.z);

    }//Funcin constructora del objeto cajafunction caja (a,b,c){

    this.x=a;this.y=b;this.z=c;

    /*El argumento volumen recibe el valor devuelto por la funcincalculoVolumen */

    this.volumen=calculoVolumen;}

    /* Instanciacin del objeto cubo, cuyos lados tienen como longitud 3, 6 y 5respectivamente */

    cubo = new caja(3,6,5);/* Llamado a la funcin calculoVolumen, cuyo resultado se asigna a V */v=cubo.volumen();

    // Impresin del volumendocument.write("El volmen de una caja de lados"+cubo.x+", "+cubo.y+" y "+cubo.z+", respectivamente es"+v+"");

  • 7/25/2019 07objetos

    8/16

    33 de 69 http://www.masterlinux.org EFGM 2000-2007

    OBJETOS PREDEFINIDOS EN JAVASCRIPT

    JavaScript es un lenguaje basado en objetos, y la implementacin decualquier aplicacin necesariamente se relaciona con ellos. Netscape, en suversin 1.3 de JavaScript (con la que se trabaja en este mdulo), tieneimplementados alrededor de 47 objetos diferentes que se ubican en una de lasdos categoras siguientes: Objetos del lado Clientey Objetos del Ncleo deJavaScript.

    Los objetos Array, Boolean, Date, Function, Math, Number,

    RegExp, y String son los componentes del denominado grupo Objetos delNcleo de JavaScript.

    De los 39 restantes slo se mencionarn los denominados Objetos delNavegador. La lista completa de los objetos predefinidos en JavaScript sepuede consultar en:

    http://wp.netscape.com/eng/mozilla/3.0/handbook/javascript/

  • 7/25/2019 07objetos

    9/16

    34 de 69 http://www.masterlinux.org EFGM 2000-2007

    OBJETOS DEL NCLEO DE JavaScript

    Dentro de este grupo estn definidos los objetos que permiten trabajarcon funciones, funciones matemticas, expresiones regulares, y tipos de datostales como arreglos, fechas, cadenas de caracteres y algunas otras funciones conconstantes numricas.

    A continuacin se har una breve descripcin de algunos de los msimportantes objetos de este grupo. Nuevamente se recomienda implementarcada uno de los ejemplos expuestos aqu, con el fin de comprender su

    funcionalidad.

    El objeto Array (arreglo)

    Los mtodos implementados en este objeto permiten entre otras cosas:crear arreglos, ordenar sus elementos, agregar y eliminar elementos, convertirlos elementos de un array en una cadena de caracteres, invertir el orden de loselementos, etc.

    En el captulo dedicado a Variables y Tipos de Datos, se explic una de lasformas de crear y manipular arreglos sin utilizar la funcionalidad del objetoArray. Existen al menos tres formas de crear arreglos mediante el uso del

    operador newy el objeto Array:

    nombre_Arreglo = new Array();

    nombre_Arreglo = new Array(elemento_0, elemento_1, elemento_N);

    nombre_Arreglo = new Array(x);

    De la primera forma se crea un nuevo arreglo cuyos elementos an nohan sido definidos. Un arreglo creado de esta manera, podr ser pobladoposteriormente utilizando la siguiente sintaxis:

    nombre_Arreglo[x]=valor;

    En el siguiente ejemplo se crea el arreglo vocales y posteriormente sedefinen sus elementos:

    vocales = new Array();vocales[0]=a;vocales[1]=e;vocales[2]=i;vocales[3]=o;vocales[4]=u;

  • 7/25/2019 07objetos

    10/16

    35 de 69 http://www.masterlinux.org EFGM 2000-2007

    En la segunda forma, adems de crear el nuevo arreglo, se definensimultneamente sus elementos en una sola lnea:

    vocales = new Array(a, e, i, o, u);

    Finalmente, un arreglo se puede crear definiendo el nmero de elementos

    que contendr pero sin asignarle valor a ninguno de ellos, para posteriormentedefinirlos:

    vocales = new Array(5);vocales[0]=a;vocales[1]=e;vocales[2]=i;vocales[3]=o;vocales[4]=u;

    En los tres casos nombre_Arreglo corresponde al nombre de la nuevainstancia del Array, que debe cumplir con las normas establecidas para nombrarvariables.

    Mto do s de l o b j e t o A r r a y

    El objeto Array de la versin 1.3 de JavaScript tiene implementados 10mtodos para manipular los elementos de un arreglo. En los ejemplos siguientesse trabajar con los arreglos pares, imparesy vocalesdefinidos as:

    pares = new Array(0, 2, 4, 6, 8);impares = new Array(1, 3, 5, 7, 9);vocales = new Array(a, e, i, o, u);

    El mtodo c o n c a t , permite agrupar dos o mas arreglos dentro de unonuevo que es devuelto por el mtodo:

    //la siguiente lnea crea el arreglo todos [0, 2, 4, 6, 8, 1, 3, 5, 7, 9]todos = pares.concat(impares);

    El resultado del mtodo concat, no es ms que la concatenacin en unarreglo nuevo de los arreglos involucrados. En el ejemplo de arriba se hanconcatenado los arreglos pares e imparesen un nuevo arreglo que se llamatodos. Si por ejemplo, fuera necesario imprimir el nmero 7, se hara de lasiguiente manera:

    document.write(El valor del noveno elemento del arreglo todos es +todos[8]);

    El mtodo concat puede recibir ms de un argumento. La siguiente lneacrea un arreglo que contiene los elementos de los arreglos pares, impares yvocales ([0, 2, 4, 6, 8, 1, 3, 5, 7, 9, a, e, i, o, u]):

    todos = pares.concat(impares, vocales);

    El mtodoj o i nagrupa los elementos de un arreglo en una variable decaracteres, separados por un carcter dado:

  • 7/25/2019 07objetos

    11/16

    36 de 69 http://www.masterlinux.org EFGM 2000-2007

    //La variable las_vocales tendr como valor a-e-i-o-ulas_vocales = vocales.join(-);

    Si se omite el carcter separador, los elementos sern separados porcomas:

    //La variable las_vocales tendr como valor a,e,i,o,ulas_vocales = vocales.join();

    El mtodo p o pelimina el ltimo elemento de un arreglo, devolviendo elelemento eliminado, mientras que el mtodo p u s h inserta uno o mas elementosal final del arreglo, devolviendo el nmero de elementos del arreglo:

    // La variable numero_eliminado tiene como valor 9numero_eliminado = impares.pop();

    numero_insertado = impares.push(9, 11);/* Ahora el arreglo impares tiene como elementos [1, 3, 5, 7, 9, 11] y el valor

    de numero_insertado es 6 */

    El mtodo r e v e r s e invierte el orden de los elementos de un arreglo, elltimo elemento ocupar el primer lugar y el primero el ltimo. Este mtodo nodevuelve ningn valor ni recibe ningn argumento.

    /*las siguientes lneas imprimirn: El valor del noveno elemento delarreglo todos es 2*/todos.reverse();document.write(El valor del noveno elemento del arreglo todos es + todos[8]);

    Para eliminar y devolver el primer elemento de un arreglo se utiliza el

    mtodo s h i f t . El mtodo u n s h i f t a su vez permite insertar uno o ms elementosen las primeras posiciones de un arreglo, devolviendo la longitud (nmero deelementos) del arreglo modificado.

    El mtodo s l i c e extrae en un nuevo arreglo, una seccin de un arreglodado, sin alterar el contenido de ste ltimo. La sintaxis del mtodo slice escomo sigue:

    nuevo = unarreglo.slice(x, y);

    el arreglo nuevotendr y-xelementos. El elemento nuevo[0]tendr elmismo valor de unarreglo[x]; nuevo[1] valdr lo mismo unarreglo[x+1] yas sucesivamente. Obviamente el nmero de elementos de unarreglotiene queser mayor o a lo sumo igual a y.

    parte = pares.slice(1, 3);

    En la lnea de arriba, el arreglo parte estar compuesto por loselementos [2, 4]. Si se omite el segundo parmetro en el mtodo:

    parte = impares.slice(1);

  • 7/25/2019 07objetos

    12/16

    37 de 69 http://www.masterlinux.org EFGM 2000-2007

    los elementos del arreglo resultante sern [3, 5, 7, 9]. Es decir todoslos elementos del arreglo impares excepto el primero (impares[0]).

    Existe tambin el mtodo sp l i c e , que permite agregar y/o eliminarelementos de un arreglo simultneamente. Veamos la sintaxis de este mtodo:

    splice(x, y, [elemento1, elemento2, , elementoN]);

    El parmetro x corresponde al ndice del arreglo a partir del cual serealizarn los cambios. y corresponde al nmero de elementos que se quiereeliminar. Es claro que este ltimo parmetro debe ser un entero positivo. Si yesigual a cero, entonces se debe especificar al menos un elemento a ser insertado.En el siguiente ejemplo, se agregarn al arreglo vocales las consonantes b, cyd, y, simultneamente se eliminarn las vocales e, i y o (lnea 2),posteriormente en la lnea 3 se remover la ltima vocal (u), y por ltimo seinsertarn los caracteres e, fy gen la lnea 4:

    vocales = new Array("a", "e", "i", "o", "u");vocales.splice(1, 3, "b", "c", "d");

    vocales.splice(4, 1);vocales.splice(4, 0, "e", "f", "g");

    El resultado final del arreglo vocales ser vocales[a, b, c, d, e,f, g]

    El objeto Date

    Este objeto no tiene atributos (variables), pero cuenta con un grannmero de funciones que permite trabajar y manipular variables de tiempo y

    fechas.

    El valor de un objeto fecha en JavaScript corresponde al nmero demilisegundos transcurridos desde el 1 de enero de 1970 a las cero horas, hastala fecha definida. Para instanciar un nuevo objeto Date, se utiliza la siguientesintaxis:

    fecha = new Date(parmetros);

    Los parmetros pueden ser cualquiera de los siguientes:

    Una cadena de caracteres con el siguiente formato:

    Mes da, ao hora:minutos:segundos//Ejemplomi_Cumpleanos = new Date(April 6, 2004 23:25:10);

    Si se omite hora, minutos o segundos, su valor se asumir como cero.

    Un conjunto de valores numricos enteros con el siguienteformato:

    Ao, mes, da, hora, minutos, segundos

  • 7/25/2019 07objetos

    13/16

    38 de 69 http://www.masterlinux.org EFGM 2000-2007

    //Ejemplomi_Cumpleanos = new Date(2004, 3, 6, 23, 25, 10);

    Se debe tener cuidado cuando se usa este formato, ya que Enero(January) corresponde al mes cero (0) y Diciembre al mes 11.

    Si no se definen parmetros, el objeto tendr como valor la fechay hora actual del sistema:

    Ahora = new Date();

    Mto do s de l o b j e t o Da t e

    Aunque Date tiene gran cantidad de mtodos para manipular fechas, solose mencionarn algunos que permiten establecer y obtener los valores de suscomponentes.

    //Creacin del objeto Fecha

    Fecha = new Date(August 7, 1819);/* El siguiente mtodo obtiene el valor numrico del da (entre 1 y31), en este caso 7 */dia = Fecha.getDate();/* El siguiente mtodo obtiene el valor numrico del da, entre 0(para Domingo - Sunday) y 6 (para Sbado - Saturday), en este casodevolver 6. Saban que la batalla de Boyac fue un Sbado?*/dia = Fecha.getDay();/* En las siguientes lneas las variables hora, minutos y segundos,tendrn como valor cero */hora = Fecha.getHours();minutos = Fecha.getMinutes();segundos = Fecha.getSeconds();//La variable annio, tendr como valor 1819annio = Fecha.getYear();/* Mientras que la variable mes, tendr como valor 7. Recuerde que

    Enero corresponde en JavaScript al mes 0, Febrero al mes 1 y assucesivamente. */mes = Fecha.getMonth();

    Date tiene tambin mtodos para establecer los valores anteriores:

    //Creacin del objeto Fecha, con la fecha actual del sistemaFecha = new Date();/* El siguiente mtodo establece el valor del da en 7. El valor deste parmetro puede estar entre 1 y 31 */Fecha.setDate(7);/* En las siguientes lneas, la hora, minutos y segundos del objetoFecha, tendrn como valor 10. El rango para hora est entre 0 y 23,mientras que para minutos y segundos est entre 0 y 59 */Fecha.setHours(10);Fecha.setMinutes(10);

    Fecha.setSeconds(10);//El ao de fecha, tendr como valor 1819Fecha.setYear(1819);/* Mientras que mes, tendr como valor August (7).*/Fecha.setMonth(7);

  • 7/25/2019 07objetos

    14/16

    39 de 69 http://www.masterlinux.org EFGM 2000-2007

    El objeto Math

    El objeto Math es a mi modo de ver el ms til y el ms fcil de manejar

    dentro de los objetos predefinidos de JavaScript. Cuenta con mtodos ypropiedades para el trabajo con funciones matemticas bsicas y constantesnumricas.

    A t r i b u t o s d e l o b j e t o M a t h

    La siguiente tabla resume la sintaxis de los principales atributos(variables), de este objeto. A diferencia de otros, para trabajar con el objetoMath, no es necesario crear una nueva instancia.

    Atributo Descripcin Valor que toma X

    X = Math.E Valor de la constante de Euler 2.718281828459045

    X = Math.LN10 Logaritmo natural de 10 2.302585092994046

    X = Math.LN2 Logaritmo natural de 2 0.6931471805599453

    X = Math.LOG10E Logaritmo en base 10 de E 0.4342944819032518

    X = Math.LOG2E Logaritmo en base 2 de E 1.4426950408889633

    X = Math.PI Valor de la constante PI 3.141592653589793

    X = Math.SQRT1_2 Raz cuadrada de 1/2 0.7071067811865476

    X = Math.SQRT2 Raz cuadrada de 2 1.4142135623730951

    Mto do s de l o b j e t o Ma t h

    La versin 1.3 de JavaScript tiene implementados aproximadamente 18mtodos dentro del objeto Math.

    Sintaxis Descripcin Ejemplo

    Z = Math.abs(x) Valor absoluto de x Z = Math.abs(-10)Z = 10

    Z = Math.acos(x) Arco (en radianes) cuyo cosenoes x

    Z = Math.acos(0)Z = 1.5707963267948965

    Z = Math.asin(x) Arco (en radianes) cuyo seno esx

    Z = Math.asin(0)Z = 0

    Z = Math.atan(x) Arco (en radianes) cuyatangente es x

    Z = Math.atan(0)Z = 0

    Z = Math.atan2(x,y) Arco (en radianes) cuyatangente es x/y

    Z = Math.atan2(0,100)Z = 0

    Z = Math.ceil(x) Devuelve el menor entero, Z = Math.ceil(-30.5)

  • 7/25/2019 07objetos

    15/16

    40 de 69 http://www.masterlinux.org EFGM 2000-2007

    mayor o igual que x Z = -30

    Z = Math.cos(x) Coseno de x (en radianes) Z = Math.cos(0)Z = 1

    Z = Math.exp(x) Devuelve el valor de E elevado ala x

    Z = Math.exp(0)Z = 1

    Z = Math.floor(x) Devuelve el mayor entero,menor o igual que x

    Z = Math.floor(-30.5)Z = -31

    Z = Math.log(x) Logaritmo natural de x Z = Math.log(10)Z = 2.302585092994046

    Z = Math.max(x,y) Devuelve el mayor de losvalores entre x e y

    Z = Math.max(10.1, 10)Z = 10.1

    Z = Math.min(x,y) Devuelve el menor de losvalores entre x e y

    Z = Math.min(10.1, 10)Z = 10

    Z = Math.pow(x,y) Devuelve x elevado a lapotencia y

    Z = Math.pow(10, 2)Z = 100

    Z = Math.random() Devuelve un nmero aleatorioentre 0 y 1

    Z = Math.random()Z = 0.7883010359801177

    Z = Math.round(x) Devuelve el valor de xredondeado al entero masprximo

    Z = Math.round(-30.5)Z = -30

    Z = Math.sin(x) Seno de x (en radianes) Z = Math.sin(0)Z = 0

    Z = Math.sqrt(x) Raz cuadrada de x Z = Math.sqrt(100)Z = 10

    El objeto String

    Otro objeto muy importante para los propsitos del presente mdulo es elobjeto String. Permite a travs de sus mtodos trabajar con cadenas decaracteres aunque estas no estn rigurosamente declaradas como objetos.

    El atributo ms importante del objeto Stringes aquel que devuelve lalongitud de una cadena de caracteres. En muchas ocasiones cuando se diseanformularios, es necesario comprobar que ciertos campos de texto no excedan unlmite determinado. El mtodo lengthdel objeto Stringdevuelve el nmero decaracteres de una cadena dada:

    cadena=Cuntos caracteres tendr?;y=cadena.length;

    document.write(La variable cadena tiene + y + caracteres,incluidos los espacios.);

    String tiene implementados alrededor de 26 mtodos, entre los cuales sedestacan:

    El mtodo a n c h o r , que permite crear un enlace con nombre, cuyocomportamiento es similar a escribir la etiqueta de HTML Nombre

  • 7/25/2019 07objetos

    16/16

    41 de 69 http://www.masterlinux.org EFGM 2000-2007

    cadena="nombre"document.write(cadena.anchor("Nombre"));

    Los mtodos b i g , b l i n k , b o l d , f i x e d , it a l i c s , sm a l l , s t r i k e , su b y su p

    muestran la cadena formateada con ciertas caractersticas. Por ejemplo:

    cadena="Texto"document.write(cadena.bold());

    mostrar la palabra Texto en negrillas. De forma similar trabajan losotros mtodos. Es importante sealar que el mtodo blink, funciona nicamentecon el navegador de Netscape.

    El mtodo c a d e n a . c h a r A t ( x ) , devuelve el carcter ubicado en la posicinxde la variable cadena (de izquierda a derecha). Es importante recordar que elprimer carcter de un string tiene como ndice cero. En el siguiente ejemplo, lavariable ytendr como valor la letra My la variable zser igual a a.

    nombre="Mara Teresa";y=nombre.charAt(0);z=nombre.charAt(nombre.length-1);

    c a d e n a . c h a r C o d e A t ( x ) , devuelve el cdigo ASCII del carcter ubicadoen la posicin x.

    nombre="Mara Teresa";y=nombre.charCodeAt(1);document.write(El cdigo ASCII de a es +y);

    El mtodo concat, concatena dos o ms cadenas dentro de una nueva,que es devuelta por el mtodo:

    nombre1="Andres";nombre2=" Francisco";apellidos=" Gaitn Guzmn";completo=nombre1.concat(nombre2, apellidos);document.write("Nombres completos "+completo);

    El contenido de la cadena completo en el anterior script es AndrsFrancisco Gaitn Guzmn.

    Para convertir todos los caracteres de una cadena dada a minsculas, seutiliza el mtodo t o L o w e r Ca s e( ) , mientras que t o U p p e r C a s e ( ) convierte todoslos caracteres de un string a maysculas:

    nombre="Andrs";min=nombre.toLowerCase();may=min.toUpperCase();document.write("En minsculas "+min);document.write(" en maysculas "+may);

    Los mtodos m a t c h , se a r c h y r e p l a c e sern tratados en el captulocorrespondiente a Expresiones Regulares.