====== Introducció a Javascript ====== [[https://developer.mozilla.org/es/docs/Web/JavaScript|Javascript]] és el llenguatge més popular a internet. **Javascript es va dissenyar per a fer-se servir dins els navegador i enriquir els documents HTML, fins al punt de permetre crear aplicacions en el propi //browser//**. Progressivament han anat apareixent implementacions en altres àmbits fora del navegador, la més destacable és com servidor web amb [[NodeJS]], però també en documents PDF o aplicacions d'escriptori. Ull a no confondre amb [[Java]], el nom és similar (ambdós marques registrades de Oracle) però els paradigmes i usos d'ambdós son ben diferents. {{javascript.jpg}} {{tag> #DawMp06 #DawMp06Uf1 #DawMp06Uf01 javascript #DamMpDual #DamMpProjecte }} ===== Referències ===== Referències: * [[https://www.w3schools.com/js/default.asp|Javascript a W3Schools]] * [[https://www.w3schools.com/jS/js_objects.asp|Objectes de Javascript]]. Equivalen als diccionaris o arrays associatius d'altres llenguatges. * [[https://www.w3schools.com/js/js_htmldom.asp|DOM del browser: Document-Object Model]] * jQuery a bytes.cat: [[jQuery]]. * [[https://www.w3schools.com/jquery/jquery_get_started.asp|jQuery a W3Schools]] Comentaris ràpids per entrar a Javascript: * ''var'' era la manera de definir variables abans del 2015 en Javascript. * ''let'' és la manera de definir variables des del 2015 endavant. * Un ''Object'' de Javascript és com un diccionari, només que pot emmagatzemar funcions, a part de variables primitives. * Podem fer proves de Javascript a la consola del //browser//:Firefox -> Mes eines -> Web Developer Tools -> Consola * La consola de JS del //browser// ens permetrà depurar amb molta facilitat ja que podem inspeccionar les variables en qualsevol moment. \\ ===== Objects o diccionaris ===== En Javascript disposem de ''[[https://www.w3schools.com/jS/js_objects.asp|Object]]'' com a estructura de dades, però **cal no confondre el ''Object'' de JS amb una ''class''**. És molt similar a un diccionari o //array// associatiu de Python, que a més ens permet emmagatzemar funcions. Això el fa molt versàtil, tot i que molta gent el considera poc formal. Prova aquest exemple de ''Object'' a la consola: let cotxe = { "marca": "Teat", "model": "Panta" } Puc accedir a l'atribut "model" de 2 maneres: console.log( cotxe["model"] ) console.log( cotxe.model ) Afegir una funció a un ''Object'': var myObj = { fun: function() { console.log("my fun"); } , myData: "un string qualsevol" } Podeu provar codi Javascript: * A la consola del //browser//Firefox -> Més eines -> Web Developer Tools -> Consola * Al terminal amb NodeJS: Si teniu instal·lat [[nodejs_express|NodeJS]], podeu provar aquests exemples simplement obrint una consola de node al terminal (tant en GNU/Linux com en Windows): $ node > var a = 1; > console.log(a); 1 > var o = { fun: function() {console.log("my fun"); } , dada: 1} > o.fun() "my fun" > \\ ===== DOM: Document-Object Model ===== Javascript es va crear per modificar les pàgines HTML en el //browser// i, per tant, disposen de funcions d'accés i modificació al **document**. [[https://www.w3schools.com/js/js_htmldom_methods.asp|El DOM o //Document-Object Model// ens permet accedir amb facilitat al contingut HTML i modificar-lo]]. Per exemple, un camp de text per a formulari (input), un paràgraf (p) i un span com aquests:

El meu nom

El meu nom és:

Nom:

Fes un arxiu HTML amb el contingut anterior, obre la consola de Javascript com s'explica més amunt, i executa les ordres a la consola: var elem = document.getElementById("nameInput"); console.log(elem.value) Si no heu escrit res dins el input text us hauria de sortir '''', però si escriviu alguna cosa a dins i executeu de nou, us hauria de sortir el què hagueu escrit: console.log(elem.value) Si ara volem mostrar el nostre nom dins d'un element HTML (en aquest cas, el ''SPAN id="nom"'', ho podem fer amb: document.getElementById("nom").innerHTML = elem.value; **Què ha passat quan has executat la darrera instrucció?** Per accedir al contingut dels elements HTML normals utilitzem ''element.innerHTML''. Per accedir al contingut dels elements de formulari utilitzem ''element.value''. \\ ===== Exercici de login i registre ===== Exercici d'aproximació ràpida si sabeu programar en altres llenguatges i coneixeu mínimament HTML. Part 1 - HTML i login: - Crea una pàgina HTML amb 2 formularis amb diferents colors de fons: * **Formulari de Login**: amb usuari i contrasenya. * **Formulari de Registre**: amb usuari, email, contrasenya. - Defineix un [[https://www.w3schools.com/jS/js_objects.asp|Object de JS]], a mode de diccionari, amb dos usuaris amb contrasenya. Fes-ho en una variable global que ens faciliti després afegir més usuaris. - Assegura't que els botons no recarreguin la pàgina (és suficient amb no posar tag
). - Afegeix una funció ''fer_login()'' dins un tag ''