SlideShare uma empresa Scribd logo
1 de 5
Baixar para ler offline
PAC2

                                                   Teòrica

1.- Explica en quins casos creus que és millor incloure el codi javascript a la mateixa pàgina html i
en quins casos és millor utilitzar un fitxer .js extern.


Separar el codi javaScript del html en un fitxer extern té diversos avantatges prou interessants:

    •   Estructuració: ajuda a mantenir més ordenat el codi.

        Quan estem desenvolupant webs d'estructura gran i complexa, el no barrejar els diferents tipus de
        codi i tenir-los en diferents arxius separats ajuda en l'edició ja que treballem amb més sensació
        d'ordre.
    •   Reutilització del codi: es pot aplicar el mateix codi javascript en diferents pàgines html.

        Agrupar aquest codi javascript en un fitxer .js extern crea una biblioteca de funcions que un cop
        definides no haurem de tornar a desenvolupar o copiar i enganxar, ja que cada cop que les
        necessitem en un codi html només haurem d'enllaçar la pàgina amb l'adreça de l'arxiu .js i fer la
        crida a la funció necessitada.
    •   Manteniment: Ajuda en posteriors feines de modificació i manteniment dels codis.

        Tindrem els codis més localitzables en diferents arxius de text gracies a seguir aquesta
        estructuració. A més a més, si estem treballant un una web prou complexa com pot ser la d'una
        empresa, separar el codi permet que un equip de professionals pugui treballar simultàniament per
        fer modificacions sobre el codi html i el js. Amb lo qual s'aprofita el temps d'una manera més eficient.

        També estalvia temps alhora de corregir errors en el codi javascript. realitzant una correcció a un
        codi js que s'aplica a diferents pàgines web, aconseguim resoldre el problema en totes les pàgines
        de cop sense haver d'obrir un fitxer html un per un.

Aleshores, és més útil utilitzar un .js extern quan podem preveure que anem a crear una pàgina
web prou extensa en codi html o una web d'estructura complexa com podria ser per una gran
empresa. Separar el js ens aportarà beneficis alhora de treballar: podrem reutilitzar el codi, controlar el
correcte funcionament del codi js aplicat a diferent seccions de la web des d'un sol arxiu, podran
treballar diverses persones es alhora en la mateixa pàgina web, ...

Pel contrari, pot resultar més còmode utilitzar un js intern si estem desenvolupant un html amb
una estructura no massa complexa i unes funcions javascript que només seran aplicables en
aquesta pàgina. Ja que en aquestes condicions no es treu tant profit dels beneficis de separar el codi
en arxius diferents: la pàgina és més simple per tant més fàcil de mantenir ordenada, no aprofitarem
les funcions definides per altres pàgines, ...

També pot ser pràctic quan desenvolupem funcions relacionades amb la modificació de la pròpia pàgina o la
resposta d'events que aquesta genera (ni que finalment acabem accedint a una llibreria externa) Exemples:

    •    Al polsar un radio button s'ha de fer invisible una part del formulari i mostrar-ne una altra ressaltada
         amb un contorn de color.
    •    Al produir-se un error en l'entrada d'un camp d'un formulari, volem que el cursor se situï sobre
         aquest camp, mostri un missatge tipus tooltip explicant l'error, i canviï el fons del camp de color (ni
         que la funció validar sigui externa, la resta d'operacions poden estar desenvolupades a la pròpia
         pàgina)

Explicat en paraules del José Maria Arconada
        “Yo recomendaría incluir el código javascript en los ficheros html exclusivamente
        en los casos en los que el código javascript es tan personalizado a la página html
        en la que se utiliza y tan pequeño en tamaño que no se puede reutilizar en otros
ficheros .html ni pueden ocasionar un ralentización en la ejecución de la página.
        Al hilo de la “personalización” del código fuente java al fichero .html en el que se
        ejecuta, otro motivo de uso incrustado en el código html es cuando los eventos
        de algunas de las propias etiquetas del html lo usan como puede ser (escribiendo
        el código java en la etiqueta) a la hora de cargar una página o enviar un
        formulario).
        “


2.- El nostre consultor ha desenvolupat un senzill codi per reflectir les incidències d'un partit de
futbol d'aficionats del seu poble. Sembla que l'emoció del partit ha provocat que el codi “grinyoli”
una mica. Detecta, explica, i soluciona els errors que hi ha en aquest pedaç.

                  <script type="text/javascript">
                     var minut_joc;
                     var 10_minut = 'L'arbitre és va equivocar';
                     minut_joc[20]='Gooool! Gol del Llorenç';
                     in=”El jugador del barri de dalt ha esta el més connectat durant el partit”;
                     out='El porter de cal Perico no n'ha aturat cap ni una';
                     alert(minut_joc+” “+in+” “+out);
                  </script>
Codi correcte:

                  <script type="text/javascript">
                          var minut_joc;
                          var minut_10 = 'L'arbitre és va equivocar';
                          minut_joc='Gooool! Gol del Llorenç';
                          var_in="El jugador del barri de dalt ha esta el més connectat durant el partit";
                          out='El porter de cal Perico no n'ha aturat cap ni una';
                          alert(minut_joc+" "+var_in+" "+out);
                  </script>

Opció 1: S’han corregit les següents variables:

        •   minut_10, una variable no pot començar per un numero.
        •   minut_joc, es una variable string (cadena de text), no un paràmetre d’un array.
        •   var_in, la paraula “in” es una paraula reservada.
        •   També s’han posat contrabarres () davant de les cometes dels strings definits entre cometes
            simples.

Arxiu
        T2.html


Opció 2: En primer lloc el primer error és que la variable minut_joc no ha estat definida com el que és un
Array, ja que més endavant al codi fem referència a la posició 20 del array, així doncs definim l’array sense
especificar el nombre d’intens.

           En segon lloc la variable 10_minut té dos problemes, el primer és que si bé es poden utilitzar
numerals per definir una variable, mai poden anar al davant, així podem definir-la com minut_10, en segon
lloc veiem que després de la L, hi ha una cometa simple, i hem tancat el literal complet entre dues cometes
simples, amb l’efecte sobre el codi següent, el codi obre una cometa i la tanca després de la L, així al tancar
tot el literal el que hem fet és tornar a obrir cometes. La solució és emprar dobles cometes per obrir i tancar
el literal que conté cometes simples.
El següent error és emprar una paraula reservada per JS com a identificador d’una dada, en aquest
cas un literal, ho canviem per la traducció al català; var_in.

        Es següent error es troba al següent identificador, més concretament en el literal, ja que hi torna a
haver el problema de les cometes simples que apareixen obrin i tancant el literal i dintre de la cadena. Ho
solucionem emprant cometes dobles per obrir i tancar el literal.

          L’últim error es produeix quan a l’alert volem donar sortida per pantalla a tot l’array cridant minut_joc,
ja que l’array és buit i només hi és definit un valor (minut_joc[20]), llavors surten a l’alert 19 cometes i el
literal que ocupa la posició 20, ho soluciono referenciant a l’alert l’únic valor del array amb contingut.

Arxiu
          ex2 teorica.html


Per acabar: El codi podria anar al head o al body, també en un js extern encara que no tindria massa sentit.
Si que seria convenient afegir a la pàgina on el situem els següents tags (amb les modificacions que
calguèssin en funció del nostre desenvolupament)


          <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
          "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
          <html xmlns="http://www.w3.org/1999/xhtml">
          <head>
          <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
          <title>Ex.2 </title>




3.-Explica amb exemples quan i com utilitzaries les utilitzaries les estructures try / catch


Es tracta d'un sistema que et permet llançar un codi i capturar els possibles errors per d’aquesta manera
controlar el flux del programa i evitar el màxim d'errors possibles. Els llenguatges orientats a objectes tenen
aquest sistema pera a processar les errades possibles dels seus objectes.

En la majoria de casos, els exemples que es troben relacionats amb el try són poc útils com és el cas de
controlar que no hi hagi errors al cridar una funció, exemples del write com a wirte o aletr per alert... no són
un bon exemple perquè com que es produiran sempre, els podrem controlar abans de posar les nostres
aplicacions en un entorn de producció. A més a més no té sentit fer un try catch que inclogui tot el nostre
codi. On utilitzar-lo doncs? Personalment el posaria quan es tracten “coses” incertes, hem de fer un
logaritme o un quocient amb dades entrades per l'usuari i no sabem que ha pogut introduir. O quan estem
accedint a una funció que forma part d'una llibreria a la que referenciem online i no estem segurs de que s'hi
hagi pogut accedir, o que, a vegades pel seu volum, pel col·lapse del servidor, els talls en la connexió... no
estem segurs de que s'hagi descarregat totalment.

En javascript s’usa de la forma següent:

     try {
        code
      } catch (error){
        code
      }

Aquesta estructura presenta també la sentència <throw>, que llença una excepció dins la sentencia <try>:

        try {
throw “Malament”; //Ni que no hi hagi cap error es llença una excepció
        }
        catch (err) {
             alert('Error: '+err);
        } finally {
             codi....
        }

Finalment aquesta estructura pot contindre el bloc <finally> que s'executa sempre al final del try,
independentment de si s'ha entrat al catch o no:

        try {
            //Obrir un canal per enviar dades al servidor
        }
        catch (err) {
             //Missatge problemes amb l'arxiu
        } finally {
             //Tancar el canal per poder-lo obrir de nou en un altre moment
        }

Un exemple molt senzill, podria fer la comprovació del password dins un formulari.

     function ValidatePassword(password){
      try {
              if(password.length < 5 ) throw "SHORT";
              else if(password.length > 10 ) throw "LONG";
              alert("Paraula clau validada!");
            }
      catch(e) {
         if(e == "SHORT")alert("Nombre insuficient de caràters a la clau!");
         if(e == "LONG")alert("Has superat el nombre màxim de caracters de la clau!");
       }
      finally{ document.myform.password.value=""; }
      alert("Clau correcta!");
     }




                                                    Pràctica

1.- Programar una funció per donar format a una data obtinguda a partir del constructor Date() de
l'objecte Date que permeti visualitzar la data final en el nostre format habitual: dia-mes-any (2
caràcters - 2 caràcters – 4 caràcters). Crear una pàgina web amb un botó que permeti validar-ho
(el resultat final es pot mostrar utilitzant un alert).


Es tracta d'un exercici molt senzill que molts de vosaltres us heu entossudit en fer malament. L'enunciat diu
clarament (2 caràcters - 2 caràcters – 4 caràcters) i molts heu mostrat els resultats amb (1 caràcter-1
caràcter – 4 caràcters). He estat força estricte en aquest punt


Arxiu
          P1Exercici1P Data actual.html
          P1Exercici1P Data definida.html
          P1Exercici1P Data usuari.html
          P1P1.html
2- Escriu un script que demani el nombre de paràmetres d'una funció, desprès demani un valor
numèric per cada paràmetre, cridi la funció, i mostri la seva concatenació. Nota: La dificultat de
l'exercici està en passar a una funció un nombre no constant de paràmetres.


Aquest exercici es pot solucionar de diverses maneres, la més senzilla és passant un sol paràmetre a la
funció que sigui un array. Les altres dues opcions passen un nombre diferent de paràmetres a la funció i
s'ajusta més al que demana l'enunciat, per fer-ho s'utilitzen les funcions apply i eval). Els tres exemples els
podeu consultar a


Han estat molts els casos que han llegit correctament el nombre de paràmetres a entrar, s'han carregat en
un array correctament i s'ha cridat la funció. I aquí han aparegut els problemes, alguns no han passat cap
paràmetre a la funció, altres han passat l'array, en algun cas la funció tenia un paràmetre d'entrada, en altres
no... i en tots els casos l'exercici semblava funcionar. Us miro d'explicar on està l'error, el problema està en
que dins la funció no accedíeu als arguments que rebia i mostràveu els valors d'un array definit global sense
fer cap cas a l'enunciat de l'exercici. En cas d'accedir als arguments molts fèieu:
         for ( i == 0; i < funcio.arguments.length;i++)

Resulta que com que passàveu un array funcio.arguments.length val 1, encadenàveu el valor d'aquest
paràmetre (array) a una cadena de text i el mostràveu. Si recordeu l'exercici teòric 2, al fer un alert d'un
array (passa el mateix si l'assigneu a una variable) es posen els elements separats per, al fer alert veiem
aquests elements, però realment no accedíeu als elements de l'array de forma individual. Si haguéssiu
d'haver fet una altra operació l'exercici no hagués funcionat mai. Què calia fer? Doncs accedir als elements
de l'array fent:
         for( var i = 0; i < funcio.arguments[0].length; i++ ) p += arguments[0][i]+”,”;

Arxiu
         P2P2_1.html (array)
         P2P2_2.html (eval)
         P2P2_3.html (apply)


3- Programar una funció que rebi 2 paràmetres de diferent tipus i actuï en funció del tipus
d'aquests paràmetres. La taula inferior ens indica quina funció hem de realitzar


                             Tipus de dada                         Operació a realitzar
                           cadenes de text      Encadenar els paràmetres
                           enters               sumar els paràmetres
                           decimals             sumar retornant el valor arrodonit
                           data                 Retornar i la diferència de dates en milisegons


Hi ha moltíssimes formes de fer-ho, us en presento dues de senzilles que resolen la identificació de les
dades de forma diferent

Arxius

P3P3_1.html
P3P3_2.html

Mais conteúdo relacionado

Destaque

Programació Web - PAC 1 correcció - Multimèdia (UOC) - Paquita Ribas
Programació  Web - PAC 1 correcció - Multimèdia (UOC) - Paquita RibasProgramació  Web - PAC 1 correcció - Multimèdia (UOC) - Paquita Ribas
Programació Web - PAC 1 correcció - Multimèdia (UOC) - Paquita RibasPaquita Ribas
 
Matemàtiques per a la Multimèdia II - PAC 2 - Multimedia (UOC) - Paquita Ribas
Matemàtiques per a la Multimèdia II - PAC 2 - Multimedia (UOC) - Paquita RibasMatemàtiques per a la Multimèdia II - PAC 2 - Multimedia (UOC) - Paquita Ribas
Matemàtiques per a la Multimèdia II - PAC 2 - Multimedia (UOC) - Paquita RibasPaquita Ribas
 
Física - PAC 3 - Multimedia (UOC) - Paquita Ribas
Física - PAC 3 - Multimedia (UOC) - Paquita RibasFísica - PAC 3 - Multimedia (UOC) - Paquita Ribas
Física - PAC 3 - Multimedia (UOC) - Paquita RibasPaquita Ribas
 
Processing_codi_practica_completa
Processing_codi_practica_completaProcessing_codi_practica_completa
Processing_codi_practica_completaPaquita Ribas
 
Xarxes Multimèdia - PAC 2 - Grau Multimèdia - UOC
Xarxes Multimèdia - PAC 2 - Grau Multimèdia - UOCXarxes Multimèdia - PAC 2 - Grau Multimèdia - UOC
Xarxes Multimèdia - PAC 2 - Grau Multimèdia - UOCPaquita Ribas
 
Xarxes Multimèdia - PAC 1 solució - Grau Multimèdia - UOC
Xarxes Multimèdia - PAC 1 solució - Grau Multimèdia - UOCXarxes Multimèdia - PAC 1 solució - Grau Multimèdia - UOC
Xarxes Multimèdia - PAC 1 solució - Grau Multimèdia - UOCPaquita Ribas
 
Matemàtiques per a la Multimèdia II - Exercici de compressió - Multimedia (UO...
Matemàtiques per a la Multimèdia II - Exercici de compressió - Multimedia (UO...Matemàtiques per a la Multimèdia II - Exercici de compressió - Multimedia (UO...
Matemàtiques per a la Multimèdia II - Exercici de compressió - Multimedia (UO...Paquita Ribas
 
Tipografia · Resum materials · Paquita Ribas
Tipografia · Resum materials · Paquita RibasTipografia · Resum materials · Paquita Ribas
Tipografia · Resum materials · Paquita RibasPaquita Ribas
 
Matemàtiques per a la Multimèdia II - Solució PAC 2 - Multimedia (UOC) - Paqu...
Matemàtiques per a la Multimèdia II - Solució PAC 2 - Multimedia (UOC) - Paqu...Matemàtiques per a la Multimèdia II - Solució PAC 2 - Multimedia (UOC) - Paqu...
Matemàtiques per a la Multimèdia II - Solució PAC 2 - Multimedia (UOC) - Paqu...Paquita Ribas
 
Processing_practica_explicacio_codi
Processing_practica_explicacio_codiProcessing_practica_explicacio_codi
Processing_practica_explicacio_codiPaquita Ribas
 
Matemàtiques per a la Multimèdia II - Pràctica 1 - Multimedia (UOC) - Paquita...
Matemàtiques per a la Multimèdia II - Pràctica 1 - Multimedia (UOC) - Paquita...Matemàtiques per a la Multimèdia II - Pràctica 1 - Multimedia (UOC) - Paquita...
Matemàtiques per a la Multimèdia II - Pràctica 1 - Multimedia (UOC) - Paquita...Paquita Ribas
 
Xarxes Multimèdia, PAC 1- Multimedia (UOC) - Paquita Ribas
Xarxes Multimèdia, PAC 1- Multimedia (UOC) - Paquita RibasXarxes Multimèdia, PAC 1- Multimedia (UOC) - Paquita Ribas
Xarxes Multimèdia, PAC 1- Multimedia (UOC) - Paquita RibasPaquita Ribas
 
Física - PAC 1 - Multimedia (UOC) - Paquita Ribas
Física - PAC 1 - Multimedia (UOC) - Paquita RibasFísica - PAC 1 - Multimedia (UOC) - Paquita Ribas
Física - PAC 1 - Multimedia (UOC) - Paquita RibasPaquita Ribas
 
Xarxes Multimèdia - PAC 2 solució - Grau Multimèdia - UOC
Xarxes Multimèdia - PAC 2 solució - Grau Multimèdia - UOCXarxes Multimèdia - PAC 2 solució - Grau Multimèdia - UOC
Xarxes Multimèdia - PAC 2 solució - Grau Multimèdia - UOCPaquita Ribas
 
Tipografia · Resum llibre
Tipografia · Resum llibreTipografia · Resum llibre
Tipografia · Resum llibrePaquita Ribas
 
Matemàtiques per a la Multimèdia II - Informe Pràctica 2 - Multimedia (UOC) -...
Matemàtiques per a la Multimèdia II - Informe Pràctica 2 - Multimedia (UOC) -...Matemàtiques per a la Multimèdia II - Informe Pràctica 2 - Multimedia (UOC) -...
Matemàtiques per a la Multimèdia II - Informe Pràctica 2 - Multimedia (UOC) -...Paquita Ribas
 
Processing_practica_manual_gps
Processing_practica_manual_gpsProcessing_practica_manual_gps
Processing_practica_manual_gpsPaquita Ribas
 
Taller de Color · Pac 1 · Paquita Ribas
Taller de Color · Pac 1 · Paquita RibasTaller de Color · Pac 1 · Paquita Ribas
Taller de Color · Pac 1 · Paquita RibasPaquita Ribas
 
Física - PAC 4 - Multimedia (UOC) - Paquita Ribas
Física - PAC 4 - Multimedia (UOC) - Paquita RibasFísica - PAC 4 - Multimedia (UOC) - Paquita Ribas
Física - PAC 4 - Multimedia (UOC) - Paquita RibasPaquita Ribas
 
Fisica - Correccions PAC 3 - Multimedia (UOC) - Paquita Ribas
Fisica - Correccions PAC 3 - Multimedia (UOC) - Paquita RibasFisica - Correccions PAC 3 - Multimedia (UOC) - Paquita Ribas
Fisica - Correccions PAC 3 - Multimedia (UOC) - Paquita RibasPaquita Ribas
 

Destaque (20)

Programació Web - PAC 1 correcció - Multimèdia (UOC) - Paquita Ribas
Programació  Web - PAC 1 correcció - Multimèdia (UOC) - Paquita RibasProgramació  Web - PAC 1 correcció - Multimèdia (UOC) - Paquita Ribas
Programació Web - PAC 1 correcció - Multimèdia (UOC) - Paquita Ribas
 
Matemàtiques per a la Multimèdia II - PAC 2 - Multimedia (UOC) - Paquita Ribas
Matemàtiques per a la Multimèdia II - PAC 2 - Multimedia (UOC) - Paquita RibasMatemàtiques per a la Multimèdia II - PAC 2 - Multimedia (UOC) - Paquita Ribas
Matemàtiques per a la Multimèdia II - PAC 2 - Multimedia (UOC) - Paquita Ribas
 
Física - PAC 3 - Multimedia (UOC) - Paquita Ribas
Física - PAC 3 - Multimedia (UOC) - Paquita RibasFísica - PAC 3 - Multimedia (UOC) - Paquita Ribas
Física - PAC 3 - Multimedia (UOC) - Paquita Ribas
 
Processing_codi_practica_completa
Processing_codi_practica_completaProcessing_codi_practica_completa
Processing_codi_practica_completa
 
Xarxes Multimèdia - PAC 2 - Grau Multimèdia - UOC
Xarxes Multimèdia - PAC 2 - Grau Multimèdia - UOCXarxes Multimèdia - PAC 2 - Grau Multimèdia - UOC
Xarxes Multimèdia - PAC 2 - Grau Multimèdia - UOC
 
Xarxes Multimèdia - PAC 1 solució - Grau Multimèdia - UOC
Xarxes Multimèdia - PAC 1 solució - Grau Multimèdia - UOCXarxes Multimèdia - PAC 1 solució - Grau Multimèdia - UOC
Xarxes Multimèdia - PAC 1 solució - Grau Multimèdia - UOC
 
Matemàtiques per a la Multimèdia II - Exercici de compressió - Multimedia (UO...
Matemàtiques per a la Multimèdia II - Exercici de compressió - Multimedia (UO...Matemàtiques per a la Multimèdia II - Exercici de compressió - Multimedia (UO...
Matemàtiques per a la Multimèdia II - Exercici de compressió - Multimedia (UO...
 
Tipografia · Resum materials · Paquita Ribas
Tipografia · Resum materials · Paquita RibasTipografia · Resum materials · Paquita Ribas
Tipografia · Resum materials · Paquita Ribas
 
Matemàtiques per a la Multimèdia II - Solució PAC 2 - Multimedia (UOC) - Paqu...
Matemàtiques per a la Multimèdia II - Solució PAC 2 - Multimedia (UOC) - Paqu...Matemàtiques per a la Multimèdia II - Solució PAC 2 - Multimedia (UOC) - Paqu...
Matemàtiques per a la Multimèdia II - Solució PAC 2 - Multimedia (UOC) - Paqu...
 
Processing_practica_explicacio_codi
Processing_practica_explicacio_codiProcessing_practica_explicacio_codi
Processing_practica_explicacio_codi
 
Matemàtiques per a la Multimèdia II - Pràctica 1 - Multimedia (UOC) - Paquita...
Matemàtiques per a la Multimèdia II - Pràctica 1 - Multimedia (UOC) - Paquita...Matemàtiques per a la Multimèdia II - Pràctica 1 - Multimedia (UOC) - Paquita...
Matemàtiques per a la Multimèdia II - Pràctica 1 - Multimedia (UOC) - Paquita...
 
Xarxes Multimèdia, PAC 1- Multimedia (UOC) - Paquita Ribas
Xarxes Multimèdia, PAC 1- Multimedia (UOC) - Paquita RibasXarxes Multimèdia, PAC 1- Multimedia (UOC) - Paquita Ribas
Xarxes Multimèdia, PAC 1- Multimedia (UOC) - Paquita Ribas
 
Física - PAC 1 - Multimedia (UOC) - Paquita Ribas
Física - PAC 1 - Multimedia (UOC) - Paquita RibasFísica - PAC 1 - Multimedia (UOC) - Paquita Ribas
Física - PAC 1 - Multimedia (UOC) - Paquita Ribas
 
Xarxes Multimèdia - PAC 2 solució - Grau Multimèdia - UOC
Xarxes Multimèdia - PAC 2 solució - Grau Multimèdia - UOCXarxes Multimèdia - PAC 2 solució - Grau Multimèdia - UOC
Xarxes Multimèdia - PAC 2 solució - Grau Multimèdia - UOC
 
Tipografia · Resum llibre
Tipografia · Resum llibreTipografia · Resum llibre
Tipografia · Resum llibre
 
Matemàtiques per a la Multimèdia II - Informe Pràctica 2 - Multimedia (UOC) -...
Matemàtiques per a la Multimèdia II - Informe Pràctica 2 - Multimedia (UOC) -...Matemàtiques per a la Multimèdia II - Informe Pràctica 2 - Multimedia (UOC) -...
Matemàtiques per a la Multimèdia II - Informe Pràctica 2 - Multimedia (UOC) -...
 
Processing_practica_manual_gps
Processing_practica_manual_gpsProcessing_practica_manual_gps
Processing_practica_manual_gps
 
Taller de Color · Pac 1 · Paquita Ribas
Taller de Color · Pac 1 · Paquita RibasTaller de Color · Pac 1 · Paquita Ribas
Taller de Color · Pac 1 · Paquita Ribas
 
Física - PAC 4 - Multimedia (UOC) - Paquita Ribas
Física - PAC 4 - Multimedia (UOC) - Paquita RibasFísica - PAC 4 - Multimedia (UOC) - Paquita Ribas
Física - PAC 4 - Multimedia (UOC) - Paquita Ribas
 
Fisica - Correccions PAC 3 - Multimedia (UOC) - Paquita Ribas
Fisica - Correccions PAC 3 - Multimedia (UOC) - Paquita RibasFisica - Correccions PAC 3 - Multimedia (UOC) - Paquita Ribas
Fisica - Correccions PAC 3 - Multimedia (UOC) - Paquita Ribas
 

Semelhante a Programació Web - PAC 2 correcció - Multimèdia (UOC) - Paquita Ribas

Turbo Gears, Framework De Python Per Aplicacions Web
Turbo Gears, Framework De Python Per Aplicacions WebTurbo Gears, Framework De Python Per Aplicacions Web
Turbo Gears, Framework De Python Per Aplicacions WebTomàs Reverter
 
El framework Cakephp
El framework CakephpEl framework Cakephp
El framework Cakephpherotyc
 
Resum
ResumResum
Resumcfgmi
 
Pàgines web amb HTML. Presentació Tema_9
Pàgines web amb HTML. Presentació Tema_9Pàgines web amb HTML. Presentació Tema_9
Pàgines web amb HTML. Presentació Tema_9Iolanda Mallorques
 
Display suite - Drupal.cat
Display suite - Drupal.catDisplay suite - Drupal.cat
Display suite - Drupal.catAtenea tech
 
S2 2013 tic-instruccions_complements
S2   2013 tic-instruccions_complementsS2   2013 tic-instruccions_complements
S2 2013 tic-instruccions_complementsGonzalo Verge Forne
 
Wordpress i detecció de malware en servidors linux
Wordpress i detecció de malware en servidors linuxWordpress i detecció de malware en servidors linux
Wordpress i detecció de malware en servidors linuxJosep Comas
 
Itineraris IT Academy (2020)
Itineraris IT Academy (2020)Itineraris IT Academy (2020)
Itineraris IT Academy (2020)Barcelona Activa
 
Dai 9 - Ruby on Rails
Dai 9 - Ruby on RailsDai 9 - Ruby on Rails
Dai 9 - Ruby on RailsCarles Mateu
 
Presentacio Django
Presentacio DjangoPresentacio Django
Presentacio DjangoAntoni Aloy
 
SIGT09 Introducció Joomla
SIGT09 Introducció JoomlaSIGT09 Introducció Joomla
SIGT09 Introducció JoomlaAlex Araujo
 
JavaScript per a desenvolupadors de C#
JavaScript per a desenvolupadors de C#JavaScript per a desenvolupadors de C#
JavaScript per a desenvolupadors de C#Edin Kapic
 

Semelhante a Programació Web - PAC 2 correcció - Multimèdia (UOC) - Paquita Ribas (20)

Turbo Gears, Framework De Python Per Aplicacions Web
Turbo Gears, Framework De Python Per Aplicacions WebTurbo Gears, Framework De Python Per Aplicacions Web
Turbo Gears, Framework De Python Per Aplicacions Web
 
Marcos baldovipac3
Marcos baldovipac3Marcos baldovipac3
Marcos baldovipac3
 
Presentació Ajax
Presentació AjaxPresentació Ajax
Presentació Ajax
 
El framework Cakephp
El framework CakephpEl framework Cakephp
El framework Cakephp
 
Resum
ResumResum
Resum
 
Html 5
Html 5Html 5
Html 5
 
UD4 Web
UD4 WebUD4 Web
UD4 Web
 
Pàgines web amb HTML. Presentació Tema_9
Pàgines web amb HTML. Presentació Tema_9Pàgines web amb HTML. Presentació Tema_9
Pàgines web amb HTML. Presentació Tema_9
 
Presentació de Javascript
Presentació de JavascriptPresentació de Javascript
Presentació de Javascript
 
Display suite - Drupal.cat
Display suite - Drupal.catDisplay suite - Drupal.cat
Display suite - Drupal.cat
 
S2 2013 tic-instruccions_complements
S2   2013 tic-instruccions_complementsS2   2013 tic-instruccions_complements
S2 2013 tic-instruccions_complements
 
Presentació del servidor Apache
Presentació del servidor ApachePresentació del servidor Apache
Presentació del servidor Apache
 
Wordpress i detecció de malware en servidors linux
Wordpress i detecció de malware en servidors linuxWordpress i detecció de malware en servidors linux
Wordpress i detecció de malware en servidors linux
 
J2EE
J2EEJ2EE
J2EE
 
Itineraris IT Academy (2020)
Itineraris IT Academy (2020)Itineraris IT Academy (2020)
Itineraris IT Academy (2020)
 
Dai 9 - Ruby on Rails
Dai 9 - Ruby on RailsDai 9 - Ruby on Rails
Dai 9 - Ruby on Rails
 
Presentacio Django
Presentacio DjangoPresentacio Django
Presentacio Django
 
SIGT09 Introducció Joomla
SIGT09 Introducció JoomlaSIGT09 Introducció Joomla
SIGT09 Introducció Joomla
 
Html, Xtml & Php
Html, Xtml & PhpHtml, Xtml & Php
Html, Xtml & Php
 
JavaScript per a desenvolupadors de C#
JavaScript per a desenvolupadors de C#JavaScript per a desenvolupadors de C#
JavaScript per a desenvolupadors de C#
 

Mais de Paquita Ribas

Fotografia Digital - Resum mòdul 1
Fotografia Digital - Resum mòdul 1Fotografia Digital - Resum mòdul 1
Fotografia Digital - Resum mòdul 1Paquita Ribas
 
Fotografia Digital - Resum mòdul 3
Fotografia Digital - Resum mòdul 3Fotografia Digital - Resum mòdul 3
Fotografia Digital - Resum mòdul 3Paquita Ribas
 
Fotografia Digital - Resum mòdul 2
Fotografia Digital - Resum mòdul 2Fotografia Digital - Resum mòdul 2
Fotografia Digital - Resum mòdul 2Paquita Ribas
 
Fotografia Digital - Resum mòdul 1
Fotografia Digital - Resum mòdul 1Fotografia Digital - Resum mòdul 1
Fotografia Digital - Resum mòdul 1Paquita Ribas
 
Fotografia Digital - Resum mòdul 1
Fotografia Digital - Resum mòdul 1Fotografia Digital - Resum mòdul 1
Fotografia Digital - Resum mòdul 1Paquita Ribas
 
Tractament i Publicació d'Àudio - Super-resum
Tractament i Publicació d'Àudio - Super-resumTractament i Publicació d'Àudio - Super-resum
Tractament i Publicació d'Àudio - Super-resumPaquita Ribas
 
Tractament i Publicació d'Àudio - Resum mòdul 6
Tractament i Publicació d'Àudio - Resum mòdul 6Tractament i Publicació d'Àudio - Resum mòdul 6
Tractament i Publicació d'Àudio - Resum mòdul 6Paquita Ribas
 
Tractament i Publicació d'Àudio - Resum mòdul 5
Tractament i Publicació d'Àudio - Resum mòdul 5Tractament i Publicació d'Àudio - Resum mòdul 5
Tractament i Publicació d'Àudio - Resum mòdul 5Paquita Ribas
 
Tractament i Publicció d'Àudio - Resum mòdul 4
Tractament i Publicció d'Àudio - Resum mòdul 4Tractament i Publicció d'Àudio - Resum mòdul 4
Tractament i Publicció d'Àudio - Resum mòdul 4Paquita Ribas
 
Tractament i Publicació d'Àudio - Resum mòdul 3
Tractament i Publicació d'Àudio - Resum mòdul 3Tractament i Publicació d'Àudio - Resum mòdul 3
Tractament i Publicació d'Àudio - Resum mòdul 3Paquita Ribas
 
Tractament i Publicació d'Àudio - Resum mòdul 2
Tractament i Publicació d'Àudio - Resum mòdul 2Tractament i Publicació d'Àudio - Resum mòdul 2
Tractament i Publicació d'Àudio - Resum mòdul 2Paquita Ribas
 
Tractament i publicació d'Àudio - Resum modul 1
Tractament i publicació d'Àudio -  Resum modul 1Tractament i publicació d'Àudio -  Resum modul 1
Tractament i publicació d'Àudio - Resum modul 1Paquita Ribas
 
Gestió de projectes Resumen mod 8
Gestió de projectes Resumen mod 8Gestió de projectes Resumen mod 8
Gestió de projectes Resumen mod 8Paquita Ribas
 
Gestió de projectes - Resum mod 7
Gestió de projectes - Resum mod 7Gestió de projectes - Resum mod 7
Gestió de projectes - Resum mod 7Paquita Ribas
 
Gestió de projectes - Resum mod 6
Gestió de projectes - Resum mod 6Gestió de projectes - Resum mod 6
Gestió de projectes - Resum mod 6Paquita Ribas
 
Gestió de projectes - Resum mod 5
Gestió de projectes - Resum mod 5Gestió de projectes - Resum mod 5
Gestió de projectes - Resum mod 5Paquita Ribas
 
Gestió de projectes - Resum mod 4
Gestió de projectes - Resum mod 4Gestió de projectes - Resum mod 4
Gestió de projectes - Resum mod 4Paquita Ribas
 
Gestió de projectes - Resum mod 3
Gestió de projectes - Resum mod 3Gestió de projectes - Resum mod 3
Gestió de projectes - Resum mod 3Paquita Ribas
 
Gestió de projectes - Resum mod 2
Gestió de projectes - Resum mod 2Gestió de projectes - Resum mod 2
Gestió de projectes - Resum mod 2Paquita Ribas
 

Mais de Paquita Ribas (20)

Licencias
LicenciasLicencias
Licencias
 
Fotografia Digital - Resum mòdul 1
Fotografia Digital - Resum mòdul 1Fotografia Digital - Resum mòdul 1
Fotografia Digital - Resum mòdul 1
 
Fotografia Digital - Resum mòdul 3
Fotografia Digital - Resum mòdul 3Fotografia Digital - Resum mòdul 3
Fotografia Digital - Resum mòdul 3
 
Fotografia Digital - Resum mòdul 2
Fotografia Digital - Resum mòdul 2Fotografia Digital - Resum mòdul 2
Fotografia Digital - Resum mòdul 2
 
Fotografia Digital - Resum mòdul 1
Fotografia Digital - Resum mòdul 1Fotografia Digital - Resum mòdul 1
Fotografia Digital - Resum mòdul 1
 
Fotografia Digital - Resum mòdul 1
Fotografia Digital - Resum mòdul 1Fotografia Digital - Resum mòdul 1
Fotografia Digital - Resum mòdul 1
 
Tractament i Publicació d'Àudio - Super-resum
Tractament i Publicació d'Àudio - Super-resumTractament i Publicació d'Àudio - Super-resum
Tractament i Publicació d'Àudio - Super-resum
 
Tractament i Publicació d'Àudio - Resum mòdul 6
Tractament i Publicació d'Àudio - Resum mòdul 6Tractament i Publicació d'Àudio - Resum mòdul 6
Tractament i Publicació d'Àudio - Resum mòdul 6
 
Tractament i Publicació d'Àudio - Resum mòdul 5
Tractament i Publicació d'Àudio - Resum mòdul 5Tractament i Publicació d'Àudio - Resum mòdul 5
Tractament i Publicació d'Àudio - Resum mòdul 5
 
Tractament i Publicció d'Àudio - Resum mòdul 4
Tractament i Publicció d'Àudio - Resum mòdul 4Tractament i Publicció d'Àudio - Resum mòdul 4
Tractament i Publicció d'Àudio - Resum mòdul 4
 
Tractament i Publicació d'Àudio - Resum mòdul 3
Tractament i Publicació d'Àudio - Resum mòdul 3Tractament i Publicació d'Àudio - Resum mòdul 3
Tractament i Publicació d'Àudio - Resum mòdul 3
 
Tractament i Publicació d'Àudio - Resum mòdul 2
Tractament i Publicació d'Àudio - Resum mòdul 2Tractament i Publicació d'Àudio - Resum mòdul 2
Tractament i Publicació d'Àudio - Resum mòdul 2
 
Tractament i publicació d'Àudio - Resum modul 1
Tractament i publicació d'Àudio -  Resum modul 1Tractament i publicació d'Àudio -  Resum modul 1
Tractament i publicació d'Àudio - Resum modul 1
 
Gestió de projectes Resumen mod 8
Gestió de projectes Resumen mod 8Gestió de projectes Resumen mod 8
Gestió de projectes Resumen mod 8
 
Gestió de projectes - Resum mod 7
Gestió de projectes - Resum mod 7Gestió de projectes - Resum mod 7
Gestió de projectes - Resum mod 7
 
Gestió de projectes - Resum mod 6
Gestió de projectes - Resum mod 6Gestió de projectes - Resum mod 6
Gestió de projectes - Resum mod 6
 
Gestió de projectes - Resum mod 5
Gestió de projectes - Resum mod 5Gestió de projectes - Resum mod 5
Gestió de projectes - Resum mod 5
 
Gestió de projectes - Resum mod 4
Gestió de projectes - Resum mod 4Gestió de projectes - Resum mod 4
Gestió de projectes - Resum mod 4
 
Gestió de projectes - Resum mod 3
Gestió de projectes - Resum mod 3Gestió de projectes - Resum mod 3
Gestió de projectes - Resum mod 3
 
Gestió de projectes - Resum mod 2
Gestió de projectes - Resum mod 2Gestió de projectes - Resum mod 2
Gestió de projectes - Resum mod 2
 

Programació Web - PAC 2 correcció - Multimèdia (UOC) - Paquita Ribas

  • 1. PAC2 Teòrica 1.- Explica en quins casos creus que és millor incloure el codi javascript a la mateixa pàgina html i en quins casos és millor utilitzar un fitxer .js extern. Separar el codi javaScript del html en un fitxer extern té diversos avantatges prou interessants: • Estructuració: ajuda a mantenir més ordenat el codi. Quan estem desenvolupant webs d'estructura gran i complexa, el no barrejar els diferents tipus de codi i tenir-los en diferents arxius separats ajuda en l'edició ja que treballem amb més sensació d'ordre. • Reutilització del codi: es pot aplicar el mateix codi javascript en diferents pàgines html. Agrupar aquest codi javascript en un fitxer .js extern crea una biblioteca de funcions que un cop definides no haurem de tornar a desenvolupar o copiar i enganxar, ja que cada cop que les necessitem en un codi html només haurem d'enllaçar la pàgina amb l'adreça de l'arxiu .js i fer la crida a la funció necessitada. • Manteniment: Ajuda en posteriors feines de modificació i manteniment dels codis. Tindrem els codis més localitzables en diferents arxius de text gracies a seguir aquesta estructuració. A més a més, si estem treballant un una web prou complexa com pot ser la d'una empresa, separar el codi permet que un equip de professionals pugui treballar simultàniament per fer modificacions sobre el codi html i el js. Amb lo qual s'aprofita el temps d'una manera més eficient. També estalvia temps alhora de corregir errors en el codi javascript. realitzant una correcció a un codi js que s'aplica a diferents pàgines web, aconseguim resoldre el problema en totes les pàgines de cop sense haver d'obrir un fitxer html un per un. Aleshores, és més útil utilitzar un .js extern quan podem preveure que anem a crear una pàgina web prou extensa en codi html o una web d'estructura complexa com podria ser per una gran empresa. Separar el js ens aportarà beneficis alhora de treballar: podrem reutilitzar el codi, controlar el correcte funcionament del codi js aplicat a diferent seccions de la web des d'un sol arxiu, podran treballar diverses persones es alhora en la mateixa pàgina web, ... Pel contrari, pot resultar més còmode utilitzar un js intern si estem desenvolupant un html amb una estructura no massa complexa i unes funcions javascript que només seran aplicables en aquesta pàgina. Ja que en aquestes condicions no es treu tant profit dels beneficis de separar el codi en arxius diferents: la pàgina és més simple per tant més fàcil de mantenir ordenada, no aprofitarem les funcions definides per altres pàgines, ... També pot ser pràctic quan desenvolupem funcions relacionades amb la modificació de la pròpia pàgina o la resposta d'events que aquesta genera (ni que finalment acabem accedint a una llibreria externa) Exemples: • Al polsar un radio button s'ha de fer invisible una part del formulari i mostrar-ne una altra ressaltada amb un contorn de color. • Al produir-se un error en l'entrada d'un camp d'un formulari, volem que el cursor se situï sobre aquest camp, mostri un missatge tipus tooltip explicant l'error, i canviï el fons del camp de color (ni que la funció validar sigui externa, la resta d'operacions poden estar desenvolupades a la pròpia pàgina) Explicat en paraules del José Maria Arconada “Yo recomendaría incluir el código javascript en los ficheros html exclusivamente en los casos en los que el código javascript es tan personalizado a la página html en la que se utiliza y tan pequeño en tamaño que no se puede reutilizar en otros
  • 2. ficheros .html ni pueden ocasionar un ralentización en la ejecución de la página. Al hilo de la “personalización” del código fuente java al fichero .html en el que se ejecuta, otro motivo de uso incrustado en el código html es cuando los eventos de algunas de las propias etiquetas del html lo usan como puede ser (escribiendo el código java en la etiqueta) a la hora de cargar una página o enviar un formulario). “ 2.- El nostre consultor ha desenvolupat un senzill codi per reflectir les incidències d'un partit de futbol d'aficionats del seu poble. Sembla que l'emoció del partit ha provocat que el codi “grinyoli” una mica. Detecta, explica, i soluciona els errors que hi ha en aquest pedaç. <script type="text/javascript"> var minut_joc; var 10_minut = 'L'arbitre és va equivocar'; minut_joc[20]='Gooool! Gol del Llorenç'; in=”El jugador del barri de dalt ha esta el més connectat durant el partit”; out='El porter de cal Perico no n'ha aturat cap ni una'; alert(minut_joc+” “+in+” “+out); </script> Codi correcte: <script type="text/javascript"> var minut_joc; var minut_10 = 'L'arbitre és va equivocar'; minut_joc='Gooool! Gol del Llorenç'; var_in="El jugador del barri de dalt ha esta el més connectat durant el partit"; out='El porter de cal Perico no n'ha aturat cap ni una'; alert(minut_joc+" "+var_in+" "+out); </script> Opció 1: S’han corregit les següents variables: • minut_10, una variable no pot començar per un numero. • minut_joc, es una variable string (cadena de text), no un paràmetre d’un array. • var_in, la paraula “in” es una paraula reservada. • També s’han posat contrabarres () davant de les cometes dels strings definits entre cometes simples. Arxiu T2.html Opció 2: En primer lloc el primer error és que la variable minut_joc no ha estat definida com el que és un Array, ja que més endavant al codi fem referència a la posició 20 del array, així doncs definim l’array sense especificar el nombre d’intens. En segon lloc la variable 10_minut té dos problemes, el primer és que si bé es poden utilitzar numerals per definir una variable, mai poden anar al davant, així podem definir-la com minut_10, en segon lloc veiem que després de la L, hi ha una cometa simple, i hem tancat el literal complet entre dues cometes simples, amb l’efecte sobre el codi següent, el codi obre una cometa i la tanca després de la L, així al tancar tot el literal el que hem fet és tornar a obrir cometes. La solució és emprar dobles cometes per obrir i tancar el literal que conté cometes simples.
  • 3. El següent error és emprar una paraula reservada per JS com a identificador d’una dada, en aquest cas un literal, ho canviem per la traducció al català; var_in. Es següent error es troba al següent identificador, més concretament en el literal, ja que hi torna a haver el problema de les cometes simples que apareixen obrin i tancant el literal i dintre de la cadena. Ho solucionem emprant cometes dobles per obrir i tancar el literal. L’últim error es produeix quan a l’alert volem donar sortida per pantalla a tot l’array cridant minut_joc, ja que l’array és buit i només hi és definit un valor (minut_joc[20]), llavors surten a l’alert 19 cometes i el literal que ocupa la posició 20, ho soluciono referenciant a l’alert l’únic valor del array amb contingut. Arxiu ex2 teorica.html Per acabar: El codi podria anar al head o al body, també en un js extern encara que no tindria massa sentit. Si que seria convenient afegir a la pàgina on el situem els següents tags (amb les modificacions que calguèssin en funció del nostre desenvolupament) <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>Ex.2 </title> 3.-Explica amb exemples quan i com utilitzaries les utilitzaries les estructures try / catch Es tracta d'un sistema que et permet llançar un codi i capturar els possibles errors per d’aquesta manera controlar el flux del programa i evitar el màxim d'errors possibles. Els llenguatges orientats a objectes tenen aquest sistema pera a processar les errades possibles dels seus objectes. En la majoria de casos, els exemples que es troben relacionats amb el try són poc útils com és el cas de controlar que no hi hagi errors al cridar una funció, exemples del write com a wirte o aletr per alert... no són un bon exemple perquè com que es produiran sempre, els podrem controlar abans de posar les nostres aplicacions en un entorn de producció. A més a més no té sentit fer un try catch que inclogui tot el nostre codi. On utilitzar-lo doncs? Personalment el posaria quan es tracten “coses” incertes, hem de fer un logaritme o un quocient amb dades entrades per l'usuari i no sabem que ha pogut introduir. O quan estem accedint a una funció que forma part d'una llibreria a la que referenciem online i no estem segurs de que s'hi hagi pogut accedir, o que, a vegades pel seu volum, pel col·lapse del servidor, els talls en la connexió... no estem segurs de que s'hagi descarregat totalment. En javascript s’usa de la forma següent: try { code } catch (error){ code } Aquesta estructura presenta també la sentència <throw>, que llença una excepció dins la sentencia <try>: try {
  • 4. throw “Malament”; //Ni que no hi hagi cap error es llença una excepció } catch (err) { alert('Error: '+err); } finally { codi.... } Finalment aquesta estructura pot contindre el bloc <finally> que s'executa sempre al final del try, independentment de si s'ha entrat al catch o no: try { //Obrir un canal per enviar dades al servidor } catch (err) { //Missatge problemes amb l'arxiu } finally { //Tancar el canal per poder-lo obrir de nou en un altre moment } Un exemple molt senzill, podria fer la comprovació del password dins un formulari. function ValidatePassword(password){ try { if(password.length < 5 ) throw "SHORT"; else if(password.length > 10 ) throw "LONG"; alert("Paraula clau validada!"); } catch(e) { if(e == "SHORT")alert("Nombre insuficient de caràters a la clau!"); if(e == "LONG")alert("Has superat el nombre màxim de caracters de la clau!"); } finally{ document.myform.password.value=""; } alert("Clau correcta!"); } Pràctica 1.- Programar una funció per donar format a una data obtinguda a partir del constructor Date() de l'objecte Date que permeti visualitzar la data final en el nostre format habitual: dia-mes-any (2 caràcters - 2 caràcters – 4 caràcters). Crear una pàgina web amb un botó que permeti validar-ho (el resultat final es pot mostrar utilitzant un alert). Es tracta d'un exercici molt senzill que molts de vosaltres us heu entossudit en fer malament. L'enunciat diu clarament (2 caràcters - 2 caràcters – 4 caràcters) i molts heu mostrat els resultats amb (1 caràcter-1 caràcter – 4 caràcters). He estat força estricte en aquest punt Arxiu P1Exercici1P Data actual.html P1Exercici1P Data definida.html P1Exercici1P Data usuari.html P1P1.html
  • 5. 2- Escriu un script que demani el nombre de paràmetres d'una funció, desprès demani un valor numèric per cada paràmetre, cridi la funció, i mostri la seva concatenació. Nota: La dificultat de l'exercici està en passar a una funció un nombre no constant de paràmetres. Aquest exercici es pot solucionar de diverses maneres, la més senzilla és passant un sol paràmetre a la funció que sigui un array. Les altres dues opcions passen un nombre diferent de paràmetres a la funció i s'ajusta més al que demana l'enunciat, per fer-ho s'utilitzen les funcions apply i eval). Els tres exemples els podeu consultar a Han estat molts els casos que han llegit correctament el nombre de paràmetres a entrar, s'han carregat en un array correctament i s'ha cridat la funció. I aquí han aparegut els problemes, alguns no han passat cap paràmetre a la funció, altres han passat l'array, en algun cas la funció tenia un paràmetre d'entrada, en altres no... i en tots els casos l'exercici semblava funcionar. Us miro d'explicar on està l'error, el problema està en que dins la funció no accedíeu als arguments que rebia i mostràveu els valors d'un array definit global sense fer cap cas a l'enunciat de l'exercici. En cas d'accedir als arguments molts fèieu: for ( i == 0; i < funcio.arguments.length;i++) Resulta que com que passàveu un array funcio.arguments.length val 1, encadenàveu el valor d'aquest paràmetre (array) a una cadena de text i el mostràveu. Si recordeu l'exercici teòric 2, al fer un alert d'un array (passa el mateix si l'assigneu a una variable) es posen els elements separats per, al fer alert veiem aquests elements, però realment no accedíeu als elements de l'array de forma individual. Si haguéssiu d'haver fet una altra operació l'exercici no hagués funcionat mai. Què calia fer? Doncs accedir als elements de l'array fent: for( var i = 0; i < funcio.arguments[0].length; i++ ) p += arguments[0][i]+”,”; Arxiu P2P2_1.html (array) P2P2_2.html (eval) P2P2_3.html (apply) 3- Programar una funció que rebi 2 paràmetres de diferent tipus i actuï en funció del tipus d'aquests paràmetres. La taula inferior ens indica quina funció hem de realitzar Tipus de dada Operació a realitzar cadenes de text Encadenar els paràmetres enters sumar els paràmetres decimals sumar retornant el valor arrodonit data Retornar i la diferència de dates en milisegons Hi ha moltíssimes formes de fer-ho, us en presento dues de senzilles que resolen la identificació de les dades de forma diferent Arxius P3P3_1.html P3P3_2.html