SlideShare a Scribd company logo
JavaScript
Loopar, if-satser, funktioner & interaktiva webbsidor
Frågor kring JavaScript?
Dagens föreläsning
1. Repetition
2. If-satser
3. Loopar
4. Funktioner
5. Interaktiva webbsidor
1. Repetition
Från förra veckan
Programmering handlar om att instruera en
maskin eller del av en maskin […] att utföra ett
visst arbete.
Variabler
• Ett viktigt koncept är att kunna spara undan värden
• Värden kan lagras i variabler
• Variabler skapasmed nyckelordet var, följt av ett namn
var name = ”Anton”;
var age = 25;
Värden i JavaScript
• Det finns sex typer av värden i JavaScript
1. Number (siffror)
2. String (textsträngar)
3. Boolean (booleskt värde; sant/falskt)
4. Array
5. Object
6. Undefined & null
Exempel från senast
If-satser
Selektion
Val / selektion
• Ofta ska program göra olika saker beroende på användarinmatning
eller resultat av en beräkning
• I JavaScript kan vi välja att utföra en uppsättning instruktion, endast
om ett uttryck är sant
• Detta görs med en if-sats
If…
If… Else…
Exempel, if-sats
Exempel, if-sats
Exempel
If-satser
Loopar (iterationer)
Göra saker flera gånger!
Iterationer / loopar
• Det är vanligt att behöva upprepa en uppsättning instruktioner flera
gånger.
• Detta är att iterera och göra med en loop.
• while-loop
• for-loop
Exempel, loopar
Exempel
Loopar
Funktioner
Återanvända samma kod!
Några inbyggda funktioner
• prompt() – Hämta data från användaren
• alert() – Skapa en popupruta
• document.write() – Utskrift på sidan
Vad är en funktion?
• Exempel på funktioner:
- prompt()
- alert()
- document.write()
• Vi vet vad de gör, men inte hur.
• Vi påverkar körningen genom att skicka indata (t.ex. vad som ska
skrivas ut, vilket meddelande som ska synas).
• I vissa fall (prompt()) får vi tillbaka ett värde.
Exempel 2
Hur använde vi funktionerna?
• Vi kallade på dem för att använda deras funktionalitet
• Vi skickade med värde för att funktionen skulle generera det resultat
vi önskade.
• Vi kallade på dem genom att ange deras funktionsnamn – och skicka
med värdet inom ()
Definiera funktion
• Inom programmering är en funktion, även subrutin, procedur,
metod, underprogram eller subprogram,
en del av ett datorprogram som kan anropas för att utföra en viss
uppgift oberoende av resten av koden.
• http://sv.wikipedia.org/wiki/Funktion_%28programmering%29
Funktion (function)
• Namngiven uppsättning instruktioner
- Kan ha en eller fler parametrar
- Kan producera ett returvärde
• Används som byggstenar för program.
• En funktion kan anropas (köras) – allt man behöver veta är namnet
på funktionen och om det finns parametrar
Ett första exempel på en funktion
Parametrar
• En funktion kan ha 0 till flera parametrar
• En parameter är som en variabel, vars värde definieras vid anropet av
funktionen
• Det värde som skickas till funktionsanrop kallas argument.
Exempel på parameter/argument
Exempel på flera parametrar/argument
Exempel
Att bygga funktionen ”showMessage”
Returvärde
• När en funktion kört klart kan den returnera ett värde
• Det värdet blir tillgängligt där funktionen anropas
• En funktion som inte anger ett returvärde själv, returneras undefined
HT16 - DA156A - JavaScript forts.
Exempel 5
3. Från funktioner till interaktiva
webbsidor
Strukturera program med funktioner
• Instruktioner anger hur saker ska utföras
• Ofta är det lättare att tänka vad som ska utföras
• Funktioner låter oss separera ”vad” från ”hur”
• Definiera uppgiften, lista ut vilka indata som krävs, bestämma vad resultatet
ska vara.
Trevlig ”sidoeffekt” av att ha funktioner:
Enkelt att anropa en funktion vid musklick
Anropa en funktion vid musklick
• För varje element på en webbsida så kan man ange JavaScript som
ska köras vid ett musklick
• Typiskt anges en funktion som ska anropas
• Detta görs med HTML-attributet ”onclick”
Anropa en funktion vid musklick
• Detta är en form av händelsedriven programmering (event handling)
• Webbläsaren ”lyssnar” efter händelser (musklick) och reagerar
genom att anropa den funktion vi angivit
Event (händelser)
• Event (händelser): genereras av användaren
• Event handler (händelsehanterare): en funktion som anropas vid ett
event
• ”Vid händelsen musklick ska funktionen alert anropas”
<button onclick="alert('Hej');">
Testa
</button>
Exempel 1
”onclick” överallt är inte så snyggt
Kan vi hantera händelser utan att behöva
ändra vår HTML?
Behov: hänvisa till delar av HTML-dokument
från JavaScript
Lösning DOM
• Document Object Model (DOM) är en representation av HTML-
dokumentet i JavaScript
• Via DOM är det möjligt att manipulera alla egenskaper, för alla
element
• Med DOM kan vi (äntligen?) separera JavaScript från HTML
DOM
• Trädstruktur som motsvarar taggarnas ordning/nästling
• Varje element är en ”nod” i trädet
• Relationer mellan noderna beskrivs med förälder/barn och syskon
Använda DOM
• I JavaScript kan man alltid komma åt DOM via objektet ”document”
• Därifrån kan vi ”navigera” genom trädet
// referens till body-elementet:
document.body
// lista över alla element i body
document.body.childNodes
Att navigera i DOM
• Vi antar att ”node” är en nod/element i DOM-trädet
// Navigera mellan noder på samma nivå
node.nextSibling
node.previousSibling
// Nedåt, barnnoder
node.firstChild
node.lastChild
node.childNodes // alla barn
// Uppåt, förälder (bara en)
node.parentNode
HT16 - DA156A - JavaScript forts.
Vi kommer fokusera på två ”genvägar”
• document.querySelector – leta upp det första elementet som
matchar vår ”sökning”
• document.querySelectorAll – leta upp alla elementet som matchar
vår ”sökning”
Exempel
JavaScript och DOM
DOM och händelser
• Med hjälp av DOM kan vi hämta referenser till element
• Har man en elementreferens kan man ändra attributet ”onclick”
• … och många andra händelseattribut:
http://www.w3schools.com/tags/ref_eventattributes.asp
Exempel
DOM och händelser
Möjligheterna är oändliga med DOM
Några saker kan vara speciellt bra att ha sett:
• Ersätta innehåll i element
• Läsa och skriva till formulärselement
• Ändra CSS dynamiskt
Extra exempel

More Related Content

PDF
HT16 - DA156A - Introduktion till JavaScript
PDF
HT16 - DA156A - JavaScript 3
PPTX
HT16 - DA156A - Ramverk och bibliotek
PDF
HT16 - DA156A - Tabeller och formulär
PDF
HT16 - DA156A - Kursintroduktion
PDF
HT16 - DA156A - Introduktion till HTML
PDF
HT16 - DA354A - Funktioner
PDF
HT16 - DA354A - Loopar & If-satser
HT16 - DA156A - Introduktion till JavaScript
HT16 - DA156A - JavaScript 3
HT16 - DA156A - Ramverk och bibliotek
HT16 - DA156A - Tabeller och formulär
HT16 - DA156A - Kursintroduktion
HT16 - DA156A - Introduktion till HTML
HT16 - DA354A - Funktioner
HT16 - DA354A - Loopar & If-satser

What's hot (20)

PDF
HT16 - DA354A - Fel- och filhantering
PPTX
Webbapplikationer - HTML
PPTX
jQuery & HTML5 Cache
PPTX
JavaScript - Intro
PDF
HT17 - DA156A - Ramverk och bibliotek
PDF
HT16 - DA156A - Användbarhet 2
PDF
HT17 - DA156A - JavaScript i webbutveckling
PDF
VT17 - DA355A - Intro JS
PDF
VT18 - DA355A - Introduktion till JavaScript
PDF
jQuery and Ajax
PPTX
Ajax - jQuery
PPTX
Webbapplikationer - Kursintroduktion (anton.tibblin@mah.se)
PDF
HT16 - DA156A - Introduktion till CSS
PDF
HT17 - DA156A - Introduktion till HTML
PDF
HT19 - DA354A - Funktioner
PDF
HT18 - DA354A - Functions
PDF
HT17 - DA156A - CSS, Layout 2
PPTX
HT15, DA354A - Funkioner
PDF
HT17 - DA156A - Introduktion till CSS
PDF
VT17 - DA355A - Introduktion HTML
HT16 - DA354A - Fel- och filhantering
Webbapplikationer - HTML
jQuery & HTML5 Cache
JavaScript - Intro
HT17 - DA156A - Ramverk och bibliotek
HT16 - DA156A - Användbarhet 2
HT17 - DA156A - JavaScript i webbutveckling
VT17 - DA355A - Intro JS
VT18 - DA355A - Introduktion till JavaScript
jQuery and Ajax
Ajax - jQuery
Webbapplikationer - Kursintroduktion (anton.tibblin@mah.se)
HT16 - DA156A - Introduktion till CSS
HT17 - DA156A - Introduktion till HTML
HT19 - DA354A - Funktioner
HT18 - DA354A - Functions
HT17 - DA156A - CSS, Layout 2
HT15, DA354A - Funkioner
HT17 - DA156A - Introduktion till CSS
VT17 - DA355A - Introduktion HTML
Ad

Similar to HT16 - DA156A - JavaScript forts. (20)

PDF
JavaScript + DOM
PDF
HT23 - DA106A - Introduktion till JavaScript
PDF
Introduktion till JS
PDF
HT24 - DA354B -Intro:Funktioner i Python
PDF
HT19 - DA156A - Introduktion till JavaScript
PDF
HT18 - DA156A - Webben och JavaScript
PDF
HT22 - DA354A - Funktioner
PDF
VT25 - JavaScript och DOM - Flerplattformsapplikationer med webbtekniker
PDF
JavaScript & DOM
PDF
DA395A - VT24 - JavaScript & Document object model
PDF
HT17 - DA156A - Sammanfattning av kursen
PDF
VT2019 - DA355A - jQuery och Ajax
PDF
VT2019 - DA355A - Intro HTML & CSS
PDF
VT18 - DA355A/DA344A - Introduktion till HTML
PDF
jQuery & Ajax
PDF
DA395A -jQuery och Ajax - Flerplattformsapplikationer med webbtekniker
PDF
VT24 - jQuery & Ajax - Flerplattformsapplikationer med webbtekniker
PDF
JavaScript och DOM
PDF
HT24 - Introduktion till webbutveckling - Tabeller och formulär
PDF
HTML - Tabeller och formulär
JavaScript + DOM
HT23 - DA106A - Introduktion till JavaScript
Introduktion till JS
HT24 - DA354B -Intro:Funktioner i Python
HT19 - DA156A - Introduktion till JavaScript
HT18 - DA156A - Webben och JavaScript
HT22 - DA354A - Funktioner
VT25 - JavaScript och DOM - Flerplattformsapplikationer med webbtekniker
JavaScript & DOM
DA395A - VT24 - JavaScript & Document object model
HT17 - DA156A - Sammanfattning av kursen
VT2019 - DA355A - jQuery och Ajax
VT2019 - DA355A - Intro HTML & CSS
VT18 - DA355A/DA344A - Introduktion till HTML
jQuery & Ajax
DA395A -jQuery och Ajax - Flerplattformsapplikationer med webbtekniker
VT24 - jQuery & Ajax - Flerplattformsapplikationer med webbtekniker
JavaScript och DOM
HT24 - Introduktion till webbutveckling - Tabeller och formulär
HTML - Tabeller och formulär
Ad

More from Anton Tibblin (20)

PPTX
React - Gästföreläsning - Flerplattformsapplikationer
PDF
2025 - DA395A - Localstorage & cookies Geolocation Mediahantering.pdf
PDF
VT25 - DA395A - Kursintroduktion i Flerplattformsapplikationerm med webbtekniker
PDF
HT24 - DA354B - Introduktion till programmering - OOP
PDF
DA354B - Introduktion till programmering - Webbprogrammering
PDF
DA354B - Introduktion till programmering: Fil- och felhantering
PDF
HT24 - DA354B - Mer om funktioner i Python
PDF
HT24 - DA354B - Introduktion till Python
PDF
HT24 - DA354B - Kursintroduktion till programmering
PDF
DA106A - Introduktion till webbutveckling - Responsiv design
PDF
HT24 - Introduktion till webbutveckling - Introduktion till CSS
PDF
HT24 - Introduktion till webbutveckling - Introduktion till HTML
PDF
HT24 - Introduktion till webbutveckling - Kursintroduktion
PDF
2024 - Localstorage & cookies Geolocation Mediahantering.pdf
PDF
VT24 - Responsiv design & Ramverk inom webbutveckling
PDF
VT24 - DA395A - Kursintroduktion: Flerplattformsapplikationer med webbtekniker
PDF
HT23 - DA354A - Webbprogrammering med Python
PDF
HT23 - DA354A - Fil- och felhantering
PDF
HT23 - DA354A - Listor och lexikon
PDF
HT23 - DA354A - Kursintroduktion
React - Gästföreläsning - Flerplattformsapplikationer
2025 - DA395A - Localstorage & cookies Geolocation Mediahantering.pdf
VT25 - DA395A - Kursintroduktion i Flerplattformsapplikationerm med webbtekniker
HT24 - DA354B - Introduktion till programmering - OOP
DA354B - Introduktion till programmering - Webbprogrammering
DA354B - Introduktion till programmering: Fil- och felhantering
HT24 - DA354B - Mer om funktioner i Python
HT24 - DA354B - Introduktion till Python
HT24 - DA354B - Kursintroduktion till programmering
DA106A - Introduktion till webbutveckling - Responsiv design
HT24 - Introduktion till webbutveckling - Introduktion till CSS
HT24 - Introduktion till webbutveckling - Introduktion till HTML
HT24 - Introduktion till webbutveckling - Kursintroduktion
2024 - Localstorage & cookies Geolocation Mediahantering.pdf
VT24 - Responsiv design & Ramverk inom webbutveckling
VT24 - DA395A - Kursintroduktion: Flerplattformsapplikationer med webbtekniker
HT23 - DA354A - Webbprogrammering med Python
HT23 - DA354A - Fil- och felhantering
HT23 - DA354A - Listor och lexikon
HT23 - DA354A - Kursintroduktion

HT16 - DA156A - JavaScript forts.

  • 3. Dagens föreläsning 1. Repetition 2. If-satser 3. Loopar 4. Funktioner 5. Interaktiva webbsidor
  • 5. Programmering handlar om att instruera en maskin eller del av en maskin […] att utföra ett visst arbete.
  • 6. Variabler • Ett viktigt koncept är att kunna spara undan värden • Värden kan lagras i variabler • Variabler skapasmed nyckelordet var, följt av ett namn var name = ”Anton”; var age = 25;
  • 7. Värden i JavaScript • Det finns sex typer av värden i JavaScript 1. Number (siffror) 2. String (textsträngar) 3. Boolean (booleskt värde; sant/falskt) 4. Array 5. Object 6. Undefined & null
  • 10. Val / selektion • Ofta ska program göra olika saker beroende på användarinmatning eller resultat av en beräkning • I JavaScript kan vi välja att utföra en uppsättning instruktion, endast om ett uttryck är sant • Detta görs med en if-sats
  • 11. If…
  • 17. Iterationer / loopar • Det är vanligt att behöva upprepa en uppsättning instruktioner flera gånger. • Detta är att iterera och göra med en loop. • while-loop • for-loop
  • 21. Några inbyggda funktioner • prompt() – Hämta data från användaren • alert() – Skapa en popupruta • document.write() – Utskrift på sidan
  • 22. Vad är en funktion? • Exempel på funktioner: - prompt() - alert() - document.write() • Vi vet vad de gör, men inte hur. • Vi påverkar körningen genom att skicka indata (t.ex. vad som ska skrivas ut, vilket meddelande som ska synas). • I vissa fall (prompt()) får vi tillbaka ett värde.
  • 24. Hur använde vi funktionerna? • Vi kallade på dem för att använda deras funktionalitet • Vi skickade med värde för att funktionen skulle generera det resultat vi önskade. • Vi kallade på dem genom att ange deras funktionsnamn – och skicka med värdet inom ()
  • 25. Definiera funktion • Inom programmering är en funktion, även subrutin, procedur, metod, underprogram eller subprogram, en del av ett datorprogram som kan anropas för att utföra en viss uppgift oberoende av resten av koden. • http://sv.wikipedia.org/wiki/Funktion_%28programmering%29
  • 26. Funktion (function) • Namngiven uppsättning instruktioner - Kan ha en eller fler parametrar - Kan producera ett returvärde • Används som byggstenar för program. • En funktion kan anropas (köras) – allt man behöver veta är namnet på funktionen och om det finns parametrar
  • 27. Ett första exempel på en funktion
  • 28. Parametrar • En funktion kan ha 0 till flera parametrar • En parameter är som en variabel, vars värde definieras vid anropet av funktionen • Det värde som skickas till funktionsanrop kallas argument.
  • 30. Exempel på flera parametrar/argument
  • 31. Exempel Att bygga funktionen ”showMessage”
  • 32. Returvärde • När en funktion kört klart kan den returnera ett värde • Det värdet blir tillgängligt där funktionen anropas • En funktion som inte anger ett returvärde själv, returneras undefined
  • 35. 3. Från funktioner till interaktiva webbsidor
  • 36. Strukturera program med funktioner • Instruktioner anger hur saker ska utföras • Ofta är det lättare att tänka vad som ska utföras • Funktioner låter oss separera ”vad” från ”hur” • Definiera uppgiften, lista ut vilka indata som krävs, bestämma vad resultatet ska vara.
  • 37. Trevlig ”sidoeffekt” av att ha funktioner: Enkelt att anropa en funktion vid musklick
  • 38. Anropa en funktion vid musklick • För varje element på en webbsida så kan man ange JavaScript som ska köras vid ett musklick • Typiskt anges en funktion som ska anropas • Detta görs med HTML-attributet ”onclick”
  • 39. Anropa en funktion vid musklick • Detta är en form av händelsedriven programmering (event handling) • Webbläsaren ”lyssnar” efter händelser (musklick) och reagerar genom att anropa den funktion vi angivit
  • 40. Event (händelser) • Event (händelser): genereras av användaren • Event handler (händelsehanterare): en funktion som anropas vid ett event • ”Vid händelsen musklick ska funktionen alert anropas” <button onclick="alert('Hej');"> Testa </button>
  • 42. ”onclick” överallt är inte så snyggt Kan vi hantera händelser utan att behöva ändra vår HTML?
  • 43. Behov: hänvisa till delar av HTML-dokument från JavaScript
  • 44. Lösning DOM • Document Object Model (DOM) är en representation av HTML- dokumentet i JavaScript • Via DOM är det möjligt att manipulera alla egenskaper, för alla element • Med DOM kan vi (äntligen?) separera JavaScript från HTML
  • 45. DOM • Trädstruktur som motsvarar taggarnas ordning/nästling • Varje element är en ”nod” i trädet • Relationer mellan noderna beskrivs med förälder/barn och syskon
  • 46. Använda DOM • I JavaScript kan man alltid komma åt DOM via objektet ”document” • Därifrån kan vi ”navigera” genom trädet // referens till body-elementet: document.body // lista över alla element i body document.body.childNodes
  • 47. Att navigera i DOM • Vi antar att ”node” är en nod/element i DOM-trädet // Navigera mellan noder på samma nivå node.nextSibling node.previousSibling // Nedåt, barnnoder node.firstChild node.lastChild node.childNodes // alla barn // Uppåt, förälder (bara en) node.parentNode
  • 49. Vi kommer fokusera på två ”genvägar” • document.querySelector – leta upp det första elementet som matchar vår ”sökning” • document.querySelectorAll – leta upp alla elementet som matchar vår ”sökning”
  • 51. DOM och händelser • Med hjälp av DOM kan vi hämta referenser till element • Har man en elementreferens kan man ändra attributet ”onclick” • … och många andra händelseattribut: http://www.w3schools.com/tags/ref_eventattributes.asp
  • 53. Möjligheterna är oändliga med DOM Några saker kan vara speciellt bra att ha sett: • Ersätta innehåll i element • Läsa och skriva till formulärselement • Ändra CSS dynamiskt