SlideShare a Scribd company logo
1 of 44
Download to read offline
JavaScript
- Ge liv till statiska HTML-sidor
Frågor på det vi gjort hittills?
• Förra föreläsningen (layout med CSS)
• Inlämningsuppgiften?
• Övrigt?
Dagens föreläsning
1. Snabb introduktion till vad JavaScript är
2. JavaScripts historik
3. Variabler
4. In-/utmatning av data
5. Exempel
Programmering handlar om att instruera en
maskin eller del av en maskin […] att utföra ett
visst arbete.
Vad är JavaScript?
• En teknik för att utveckla interaktiva webbsidor
• Ett programspråk inbäddat i webbläsare
http://en.wikipedia.org/w/index.php?title=File:Unofficial_JavaScript_logo_2.svg&page=1
Har ni sett det innan?
I vilket sammanhang används JavaScript?
JavaScript
CSS
HTML
Innehåll
Interaktivitet
Utformning
Struktur
Innehåll
Exempel på JavaScript
• Bildspel: http://wowslider.com/javascript-slideshow-quiet-rotate-demo.html
• Dynamisk innehåll: http://gmail.com, http://facebook.com, https://twitter.com/
• Beräkningar: http://valuta.se
• Validera formulär: http://yensdesign.com/tutorials/validateform/
• Dialogrutor: http://tibbelit.se/film
• Interaktiva element: http://mrdoob.com/projects/chromeexperiments/ball_pool/
• Spel: http://www.phoboslab.org/ztype/
• Animationer: http://codepen.io/juliangarnier/pen/idhuG
• och mycket mera!
JavaScript - Historik
• Utvecklades av Netscape under mitten av 90-talet
• Har inget med Java att göra – det är ett eget programmeringsspråk
• Microsoft skapade sin egen version av JavaScript – Jscript
• På senare dagar (2005) har ajax blivit en populärt
• Lägger till extra funktionalitet för webben och webbläsare
Vad kan man göra med JavaScript?
• I princip vad du vill! (som har med webbsidor att göra)
• Men det används ofta till att skapa interaktiva webbsidor
• Med interaktiv menas: Reagera på användaras handlingar och
modifiera webbsidans innehåll
Programmering
• Att ge instruktioner till en maskin så att den utför det man vill
• Del av att utveckla programvara
• Kreativ problemlösande verksamhet
• Konstform?
Programspråk
• En dator kan endast utföra ett begränsat antal instruktioner
• Varje instruktion är mycket begränsad, t.ex.
- Addera innehållet i två minnesutrymmen
- Flytta innehållet i ett minnesutrymme till ett annat utrymme
Maskinkod för att skriva ut 1+2+…+10=55
00110001 00000000 00000000
00110001 00000001 00000001
00110011 00000001 00000010
01010001 00001011 00000010
00100010 00000010 00001000
01000011 00000001 00000000
01000001 00000001 00000001
00010000 00000010 00000000
01100010 00000000 00000000
Lågnivåspråk
• Språk som behöver liten eller ingen bearbetning för att exekveras på
en dator
• Maskinkod – kod som maskinen kan exekvera direkt
• Assemblerspråk – kräver en viss översättning, s.k. assemblering, innan
programmet kan exekveras.
Högnivåspråk
• Mer anpassade för människor att läsa/skriva
• Måste översättas (interpreteras eller kompileras) till maskinkod innan
det kan exekveras.
• En instruktion i ett högnivåspråk leder ofta till ett antal instruktioner i
maskinkod.
• JavaScript, Java, C#, C++, Python, Ruby, ASP, JSP – och 5000(?) andra.
JavaScript
• För JavaScript sköter webbläsaren körningen
• Webbläsaren är alltså en interpretator (tolk) för JavaScript-kod
• JavaScript är ett av de enklaste programspråken att komma igång med
Programspråk
• Programspråk är, till skillnad från t.ex. svenska och engelska, formella
språk
• De ska uttrycka något utan tvetydighet.
• Men programspråk delar vissa likheter med naturliga språk –
vokabulär och grammatik.
• Även uttryck och instruktioner.
The man hit the boy with the stick
Who is holding the stick?
Requirements Management, DA254A 7.5 ECTS, VT2014,
annabella.loconsole@mah.se
21
MAN BOY
The man hit the boy with the stick
Who is holding the stick?
Requirements Management, DA254A 7.5 ECTS, VT2014,
annabella.loconsole@mah.se
22
MAN BOY
Uttryck (expression)
- Kod som producerar ett värde
• UTTRYCK
• ”5”+”8”
• 3 + 5
• 20/2 + 3*4
• "Hejsan"
• "Hej” + ” ” + "du"
• 5 > 2
• VÄRDE
• 58
• 8
• 22
• "Hejsan"
• "Hej du"
• true
Instruktion (statement)
• Ett program består av en lista instruktioner
• En instruktion består av minst ett uttryck och avslutas med ett
semikolon ”;”
5;
alert(”Hej och välkommen”);
var birthYear = 2016 – age;
Att skapa ett program
• Uppgiftsformulering, vad är det för uppgift som ska lösas?
• Vilka steg behöver utföras för att lösa uppgiften?
• Vilka instruktioner kan användas för att utföra varje delsteg (algoritm)
Algoritm
• En beskrivning över hur man löser ett problem. Algoritmen består av
ett antal instruktioner och beskriver i vilken ordning instruktionerna
ska utföras.
http://www.recepten.se/recept/pasta_carbonara.html
http://upload.wikimedia.org/wikipedia/commons/thumb/3/3c/LampFlo
wchart-sv.svg/250px-LampFlowchart-sv.svg.png
Övning!
• Vilka instruktioner (vilken algoritm) krävs för en dator för att sortera
följande bokhög i bokstavsordning:
• Modern PHP
• Graph Databases
• Rest in Practice
• Användbarhet i praktiken
• Information Architecture
• Computer science illuminated
Att tänka på
• Uppgiftsformulering, vad är det för uppgift som ska lösas? Formulera uppgiften i termer av vad en dator kan utföra. Avgränsa problemet, vad
är en del av uppgiften? Vad ingår inte?
• Algoritmkonstruktion, vilka algoritmer är de mest lämpliga för detta problem? Konstruera strukturen på programmet och skriv ner så kallad
pseudokod. Detta är kreativ problemlösning.
• Kodning, översätt pseudokoden till ett programmeringsspråk t.ex. JavaScript eller Python
• Dokumentation, beskriva din lösning både i löpande text, med hjälp av UML och som kommentarer i programmet.
• Verifikation, är programmet byggt på ett bra sätt så att det löser uppgiften utan att fel uppstår och det är lätt att underhålla.
• Validering, är användaren nöjd med hur programmet fungerar. Underhåll, åtgärda buggar, förbättra och lägg till funktionalitet.
• Underhåll, åtgärda buggar, förbättra och lägg till funktionalitet.
JavaScript
• JavaScript skrivs som ren text
• Det kan skrivas antingen inbäddat direkt i HTML-koden
• Eller i en separat fil, som sedan inkluderas i HTML-dokumentet
Inbäddat skript
• HTML-elementet <script> används för att definiera ett JavaScript-
block.
- Jämför detta med att inkludera inbäddad CSS-mall med hjälp av
<style>
• Elementet <script> kan placeras var som helst i HTML-dokumentet,
inte bara i <head>
• JavaScript-koden körs på den plats JavaScript-elementet finns.
Externt skript
• JavaScript-koden sparas i en separat fil, med filändelsen .js
• Skriptfilen inkluderas i HTML-dokumentet, också med hjälp av
elementet <script>
<script src="minkod.js" type="text/javascript"></script>
Uttryck och instruktioner i
JavaScript
Datatyper i JavaScript
• Det finns sex datatyper i JavaScript
1. Number (siffror)
2. String (textsträngar)
3. Boolean (booleskt värde; sant/falskt)
4. Array
5. Object
6. Undefined & null
Nummer (number)
• Kan vara heltal (integer) eller decimaltal (float)
• Kan vara negativa eller positiva
• Stödjer de vanliga matematiskta operatorerna
3*5 + 2.5 17.5
115*4 – 4 + 88 / 2 500
Strängar (string)
• En uppsättning av (i princip) vilka tecken som helst
• Skapas med citattecken ” eller apostrofer ’
• Kan läggas hop (konkateneras)
• Ex.
”Hello World”
’Hello World’
’Mister ’ + ”X”
Booleanskt värde (boolean)
• Representerar antingen sant (true) eller falskt (false)
• Används ofta vid jämförelser
Större än > Mindre än <
Exakt lika == Inte lika !=
• Flera jämförelser kan kombineras
och && eller ||
Booleanskt värde - exempel
• 10 > 3 true
• 3 > 10 false
• 5 == 2+3 true
• "ABC" == "ABC” true
• 4 > 3 && "hej" == "då” false
• 4 > 3 || "hej" == "då” true
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; // skapa variabel
name = "Bob"; // tilldela värde
var age = 40; // skapa och tilldela samtidigt
Exempel
var tal1, tal2;
tal1 = 50;
tal2 = 75;
var result = tal1 + tal2;
// Funkar också:
var tal1 = 50, tal2 = 75;
Inmatning/utmatning
• Vi kan lagra värden och göra beräkningar, men hur ska vi hämta data
från användaren och hur visas resultaten?
• JavaScript har inbyggda funktioner för att:
- fråga användaren efter ett värde
- visa ett värde i en ruta
- skriva ett värde till HTML-dokumentet
- läsa och modifiera innehåll i HTML-dokument
Exempel
• // Visa ruta att skriva i och spara
• // i variabeln `svar`:
• var svar;
• svar = prompt("Var god skriv")
• // Visa meddelanderuta med texten
• // ‘Hej och välkommen’:
• alert("Hej och välkommen");
• // Skriv texten ‘Bonustext’ till
• // HTML-dokumentet
• document.write("Bonustext")

More Related Content

What's hot

HT16 - DA156A - Tabeller och formulär
HT16 - DA156A - Tabeller och formulärHT16 - DA156A - Tabeller och formulär
HT16 - DA156A - Tabeller och formulärAnton Tibblin
 
HT16 - DA156A - Introduktion till CSS
HT16 - DA156A - Introduktion till CSSHT16 - DA156A - Introduktion till CSS
HT16 - DA156A - Introduktion till CSSAnton Tibblin
 
HT17 - DA156A - Sammanfattning av kursen
HT17 - DA156A - Sammanfattning av kursenHT17 - DA156A - Sammanfattning av kursen
HT17 - DA156A - Sammanfattning av kursenAnton Tibblin
 
HT17 - DA156A - Introduktion till CSS
HT17 - DA156A - Introduktion till CSSHT17 - DA156A - Introduktion till CSS
HT17 - DA156A - Introduktion till CSSAnton Tibblin
 
HT17 - DA156A - CSS, Layout 2
HT17 - DA156A - CSS, Layout 2HT17 - DA156A - CSS, Layout 2
HT17 - DA156A - CSS, Layout 2Anton Tibblin
 
HT17 - DA156A - Kursintroduktion
HT17 - DA156A - KursintroduktionHT17 - DA156A - Kursintroduktion
HT17 - DA156A - KursintroduktionAnton Tibblin
 
HT17 - DA156A - Tabeller & Formulär
HT17 - DA156A - Tabeller & FormulärHT17 - DA156A - Tabeller & Formulär
HT17 - DA156A - Tabeller & FormulärAnton Tibblin
 
Webbapplikationer - HTML
Webbapplikationer - HTMLWebbapplikationer - HTML
Webbapplikationer - HTMLAnton Tibblin
 
VT17 - DA355A - Intro JS
VT17 - DA355A - Intro JSVT17 - DA355A - Intro JS
VT17 - DA355A - Intro JSAnton Tibblin
 
VT17 - DA355A - Introduktion HTML
VT17 - DA355A - Introduktion HTMLVT17 - DA355A - Introduktion HTML
VT17 - DA355A - Introduktion HTMLAnton Tibblin
 
HT17 - DA156A - Layout med HTML & CSS
HT17 - DA156A - Layout med HTML & CSSHT17 - DA156A - Layout med HTML & CSS
HT17 - DA156A - Layout med HTML & CSSAnton Tibblin
 
Webbapplikationer - Kursintroduktion (anton.tibblin@mah.se)
Webbapplikationer - Kursintroduktion (anton.tibblin@mah.se)Webbapplikationer - Kursintroduktion (anton.tibblin@mah.se)
Webbapplikationer - Kursintroduktion (anton.tibblin@mah.se)Anton Tibblin
 
jQuery & HTML5 Cache
jQuery & HTML5 CachejQuery & HTML5 Cache
jQuery & HTML5 CacheAnton Tibblin
 
HT19 - DA354A - Webbprogrammering med bottle
HT19 - DA354A - Webbprogrammering med bottleHT19 - DA354A - Webbprogrammering med bottle
HT19 - DA354A - Webbprogrammering med bottleAnton Tibblin
 
HT20 - DA106A - Kursintroduktion
HT20 - DA106A - KursintroduktionHT20 - DA106A - Kursintroduktion
HT20 - DA106A - KursintroduktionAnton Tibblin
 
HT19 - DA156A - Introduktion till HTML
HT19 - DA156A - Introduktion till HTMLHT19 - DA156A - Introduktion till HTML
HT19 - DA156A - Introduktion till HTMLAnton Tibblin
 
HT18 - DA156A - Introduktion till HTML
HT18 - DA156A - Introduktion till HTMLHT18 - DA156A - Introduktion till HTML
HT18 - DA156A - Introduktion till HTMLAnton Tibblin
 
HT17 - DA354A - Webbapplikation
HT17 - DA354A - WebbapplikationHT17 - DA354A - Webbapplikation
HT17 - DA354A - WebbapplikationAnton Tibblin
 

What's hot (20)

HT16 - DA156A - Tabeller och formulär
HT16 - DA156A - Tabeller och formulärHT16 - DA156A - Tabeller och formulär
HT16 - DA156A - Tabeller och formulär
 
HT16 - DA156A - Introduktion till CSS
HT16 - DA156A - Introduktion till CSSHT16 - DA156A - Introduktion till CSS
HT16 - DA156A - Introduktion till CSS
 
HT17 - DA156A - Sammanfattning av kursen
HT17 - DA156A - Sammanfattning av kursenHT17 - DA156A - Sammanfattning av kursen
HT17 - DA156A - Sammanfattning av kursen
 
HT17 - DA156A - Introduktion till CSS
HT17 - DA156A - Introduktion till CSSHT17 - DA156A - Introduktion till CSS
HT17 - DA156A - Introduktion till CSS
 
HT17 - DA156A - CSS, Layout 2
HT17 - DA156A - CSS, Layout 2HT17 - DA156A - CSS, Layout 2
HT17 - DA156A - CSS, Layout 2
 
HT17 - DA156A - Kursintroduktion
HT17 - DA156A - KursintroduktionHT17 - DA156A - Kursintroduktion
HT17 - DA156A - Kursintroduktion
 
HT17 - DA156A - Tabeller & Formulär
HT17 - DA156A - Tabeller & FormulärHT17 - DA156A - Tabeller & Formulär
HT17 - DA156A - Tabeller & Formulär
 
Webbapplikationer - HTML
Webbapplikationer - HTMLWebbapplikationer - HTML
Webbapplikationer - HTML
 
VT17 - DA355A - Intro JS
VT17 - DA355A - Intro JSVT17 - DA355A - Intro JS
VT17 - DA355A - Intro JS
 
JavaScript - Intro
JavaScript - IntroJavaScript - Intro
JavaScript - Intro
 
VT17 - DA355A - Introduktion HTML
VT17 - DA355A - Introduktion HTMLVT17 - DA355A - Introduktion HTML
VT17 - DA355A - Introduktion HTML
 
HT17 - DA156A - Layout med HTML & CSS
HT17 - DA156A - Layout med HTML & CSSHT17 - DA156A - Layout med HTML & CSS
HT17 - DA156A - Layout med HTML & CSS
 
Webbapplikationer - Kursintroduktion (anton.tibblin@mah.se)
Webbapplikationer - Kursintroduktion (anton.tibblin@mah.se)Webbapplikationer - Kursintroduktion (anton.tibblin@mah.se)
Webbapplikationer - Kursintroduktion (anton.tibblin@mah.se)
 
jQuery & HTML5 Cache
jQuery & HTML5 CachejQuery & HTML5 Cache
jQuery & HTML5 Cache
 
HT19 - DA354A - Webbprogrammering med bottle
HT19 - DA354A - Webbprogrammering med bottleHT19 - DA354A - Webbprogrammering med bottle
HT19 - DA354A - Webbprogrammering med bottle
 
jQuery and Ajax
jQuery and AjaxjQuery and Ajax
jQuery and Ajax
 
HT20 - DA106A - Kursintroduktion
HT20 - DA106A - KursintroduktionHT20 - DA106A - Kursintroduktion
HT20 - DA106A - Kursintroduktion
 
HT19 - DA156A - Introduktion till HTML
HT19 - DA156A - Introduktion till HTMLHT19 - DA156A - Introduktion till HTML
HT19 - DA156A - Introduktion till HTML
 
HT18 - DA156A - Introduktion till HTML
HT18 - DA156A - Introduktion till HTMLHT18 - DA156A - Introduktion till HTML
HT18 - DA156A - Introduktion till HTML
 
HT17 - DA354A - Webbapplikation
HT17 - DA354A - WebbapplikationHT17 - DA354A - Webbapplikation
HT17 - DA354A - Webbapplikation
 

Similar to HT16 - DA156A - Introduktion till JavaScript

HT18 - DA156A - Webben och JavaScript
HT18 - DA156A - Webben och JavaScriptHT18 - DA156A - Webben och JavaScript
HT18 - DA156A - Webben och JavaScriptAnton Tibblin
 
HT19 - DA156A - Introduktion till JavaScript
HT19 - DA156A - Introduktion till JavaScriptHT19 - DA156A - Introduktion till JavaScript
HT19 - DA156A - Introduktion till JavaScriptAnton Tibblin
 
HT23 - DA106A - Introduktion till JavaScript
HT23 - DA106A - Introduktion till JavaScriptHT23 - DA106A - Introduktion till JavaScript
HT23 - DA106A - Introduktion till JavaScriptAnton Tibblin
 
HT18 - DA156A - Extra
HT18 - DA156A - ExtraHT18 - DA156A - Extra
HT18 - DA156A - ExtraAnton Tibblin
 
HT16 - DA354A - Introduktion till programmering (Python)
HT16 - DA354A - Introduktion till programmering (Python)HT16 - DA354A - Introduktion till programmering (Python)
HT16 - DA354A - Introduktion till programmering (Python)Anton Tibblin
 
HT15, DA354A - Introduktion till Python
HT15, DA354A - Introduktion till PythonHT15, DA354A - Introduktion till Python
HT15, DA354A - Introduktion till PythonAnton Tibblin
 
HT19 - DA354A - Introduktion till Python
HT19 - DA354A - Introduktion till PythonHT19 - DA354A - Introduktion till Python
HT19 - DA354A - Introduktion till PythonAnton Tibblin
 
HT22 - DA354A - Introduktion till Programmering
HT22 - DA354A - Introduktion till ProgrammeringHT22 - DA354A - Introduktion till Programmering
HT22 - DA354A - Introduktion till ProgrammeringAnton Tibblin
 
HT18 - DA354A - Introduction to programming
HT18 - DA354A - Introduction to programmingHT18 - DA354A - Introduction to programming
HT18 - DA354A - Introduction to programmingAnton Tibblin
 
PHP och MySQL
PHP och MySQLPHP och MySQL
PHP och MySQLbjornh
 
Anpassad kurs för Acudira AB
Anpassad kurs för Acudira ABAnpassad kurs för Acudira AB
Anpassad kurs för Acudira ABAntonio Riveras
 
Responsiv webbdesign + HTML5 + CSS5
Responsiv webbdesign + HTML5 + CSS5Responsiv webbdesign + HTML5 + CSS5
Responsiv webbdesign + HTML5 + CSS5Martin Carlsson
 
HT16 - DA354A - Funktioner
HT16 - DA354A - FunktionerHT16 - DA354A - Funktioner
HT16 - DA354A - FunktionerAnton Tibblin
 
HT18 - DA354A - Bottle web app
HT18 - DA354A - Bottle web appHT18 - DA354A - Bottle web app
HT18 - DA354A - Bottle web appAnton Tibblin
 
HT18 - DA354A - Functions
HT18 - DA354A - FunctionsHT18 - DA354A - Functions
HT18 - DA354A - FunctionsAnton Tibblin
 
HT19 - DA354A - Funktioner
HT19 - DA354A - FunktionerHT19 - DA354A - Funktioner
HT19 - DA354A - FunktionerAnton Tibblin
 
HT15, DA354A - Funkioner
HT15, DA354A - FunkionerHT15, DA354A - Funkioner
HT15, DA354A - FunkionerAnton Tibblin
 
VT18 - DA355A - Introduktion till JavaScript
VT18 - DA355A - Introduktion till JavaScriptVT18 - DA355A - Introduktion till JavaScript
VT18 - DA355A - Introduktion till JavaScriptAnton Tibblin
 

Similar to HT16 - DA156A - Introduktion till JavaScript (20)

HT18 - DA156A - Webben och JavaScript
HT18 - DA156A - Webben och JavaScriptHT18 - DA156A - Webben och JavaScript
HT18 - DA156A - Webben och JavaScript
 
HT19 - DA156A - Introduktion till JavaScript
HT19 - DA156A - Introduktion till JavaScriptHT19 - DA156A - Introduktion till JavaScript
HT19 - DA156A - Introduktion till JavaScript
 
HT23 - DA106A - Introduktion till JavaScript
HT23 - DA106A - Introduktion till JavaScriptHT23 - DA106A - Introduktion till JavaScript
HT23 - DA106A - Introduktion till JavaScript
 
HT18 - DA156A - Extra
HT18 - DA156A - ExtraHT18 - DA156A - Extra
HT18 - DA156A - Extra
 
HT16 - DA354A - Introduktion till programmering (Python)
HT16 - DA354A - Introduktion till programmering (Python)HT16 - DA354A - Introduktion till programmering (Python)
HT16 - DA354A - Introduktion till programmering (Python)
 
HT15, DA354A - Introduktion till Python
HT15, DA354A - Introduktion till PythonHT15, DA354A - Introduktion till Python
HT15, DA354A - Introduktion till Python
 
HT19 - DA354A - Introduktion till Python
HT19 - DA354A - Introduktion till PythonHT19 - DA354A - Introduktion till Python
HT19 - DA354A - Introduktion till Python
 
HT22 - DA354A - Introduktion till Programmering
HT22 - DA354A - Introduktion till ProgrammeringHT22 - DA354A - Introduktion till Programmering
HT22 - DA354A - Introduktion till Programmering
 
TypeScript DevSum 2013
TypeScript DevSum 2013TypeScript DevSum 2013
TypeScript DevSum 2013
 
HT18 - DA354A - Introduction to programming
HT18 - DA354A - Introduction to programmingHT18 - DA354A - Introduction to programming
HT18 - DA354A - Introduction to programming
 
PHP och MySQL
PHP och MySQLPHP och MySQL
PHP och MySQL
 
Anpassad kurs för Acudira AB
Anpassad kurs för Acudira ABAnpassad kurs för Acudira AB
Anpassad kurs för Acudira AB
 
Responsiv webbdesign + HTML5 + CSS5
Responsiv webbdesign + HTML5 + CSS5Responsiv webbdesign + HTML5 + CSS5
Responsiv webbdesign + HTML5 + CSS5
 
HT16 - DA354A - Funktioner
HT16 - DA354A - FunktionerHT16 - DA354A - Funktioner
HT16 - DA354A - Funktioner
 
HT18 - DA354A - Bottle web app
HT18 - DA354A - Bottle web appHT18 - DA354A - Bottle web app
HT18 - DA354A - Bottle web app
 
HT18 - DA354A - Functions
HT18 - DA354A - FunctionsHT18 - DA354A - Functions
HT18 - DA354A - Functions
 
HT19 - DA354A - Funktioner
HT19 - DA354A - FunktionerHT19 - DA354A - Funktioner
HT19 - DA354A - Funktioner
 
HT15, DA354A - Funkioner
HT15, DA354A - FunkionerHT15, DA354A - Funkioner
HT15, DA354A - Funkioner
 
13 cms ht14
13 cms ht1413 cms ht14
13 cms ht14
 
VT18 - DA355A - Introduktion till JavaScript
VT18 - DA355A - Introduktion till JavaScriptVT18 - DA355A - Introduktion till JavaScript
VT18 - DA355A - Introduktion till JavaScript
 

More from Anton Tibblin

2024 - Localstorage & cookies Geolocation Mediahantering.pdf
2024 - Localstorage & cookies Geolocation Mediahantering.pdf2024 - Localstorage & cookies Geolocation Mediahantering.pdf
2024 - Localstorage & cookies Geolocation Mediahantering.pdfAnton Tibblin
 
VT24 - jQuery & Ajax - Flerplattformsapplikationer med webbtekniker
VT24 - jQuery & Ajax - Flerplattformsapplikationer med webbteknikerVT24 - jQuery & Ajax - Flerplattformsapplikationer med webbtekniker
VT24 - jQuery & Ajax - Flerplattformsapplikationer med webbteknikerAnton Tibblin
 
VT24 - Responsiv design & Ramverk inom webbutveckling
VT24 - Responsiv design & Ramverk inom webbutvecklingVT24 - Responsiv design & Ramverk inom webbutveckling
VT24 - Responsiv design & Ramverk inom webbutvecklingAnton Tibblin
 
DA395A - VT24 - JavaScript & Document object model
DA395A - VT24 - JavaScript & Document object modelDA395A - VT24 - JavaScript & Document object model
DA395A - VT24 - JavaScript & Document object modelAnton Tibblin
 
VT24 - DA395A - Kursintroduktion: Flerplattformsapplikationer med webbtekniker
VT24 - DA395A - Kursintroduktion: Flerplattformsapplikationer med webbteknikerVT24 - DA395A - Kursintroduktion: Flerplattformsapplikationer med webbtekniker
VT24 - DA395A - Kursintroduktion: Flerplattformsapplikationer med webbteknikerAnton Tibblin
 
HT23 - DA354A - Webbprogrammering med Python
HT23 - DA354A - Webbprogrammering med PythonHT23 - DA354A - Webbprogrammering med Python
HT23 - DA354A - Webbprogrammering med PythonAnton Tibblin
 
HT23 - DA354A - Fil- och felhantering
HT23 - DA354A - Fil- och felhanteringHT23 - DA354A - Fil- och felhantering
HT23 - DA354A - Fil- och felhanteringAnton Tibblin
 
HT23 - DA354A - Listor och lexikon
HT23 - DA354A - Listor och lexikonHT23 - DA354A - Listor och lexikon
HT23 - DA354A - Listor och lexikonAnton Tibblin
 
HT23 - DA354A - Kursintroduktion
HT23 - DA354A - KursintroduktionHT23 - DA354A - Kursintroduktion
HT23 - DA354A - KursintroduktionAnton Tibblin
 
HT23 - DA106A - Användbarhet (2)
HT23 - DA106A - Användbarhet (2)HT23 - DA106A - Användbarhet (2)
HT23 - DA106A - Användbarhet (2)Anton Tibblin
 
HT23 - DA106A - Användbarhet 1
HT23 - DA106A - Användbarhet 1HT23 - DA106A - Användbarhet 1
HT23 - DA106A - Användbarhet 1Anton Tibblin
 
HT23 - DA106A - Ramverk & Bibliotek
HT23 - DA106A - Ramverk & BibliotekHT23 - DA106A - Ramverk & Bibliotek
HT23 - DA106A - Ramverk & BibliotekAnton Tibblin
 
HT23 - DA106A - Responsiv webbutveckling
HT23 - DA106A - Responsiv webbutvecklingHT23 - DA106A - Responsiv webbutveckling
HT23 - DA106A - Responsiv webbutvecklingAnton Tibblin
 
HT23 - DA106A - Layout (2)
HT23 - DA106A - Layout (2)HT23 - DA106A - Layout (2)
HT23 - DA106A - Layout (2)Anton Tibblin
 
HT23 - DA106A - Layout med CSS (1)
HT23 - DA106A - Layout med CSS (1)HT23 - DA106A - Layout med CSS (1)
HT23 - DA106A - Layout med CSS (1)Anton Tibblin
 
Introduktion till CSS
Introduktion till CSSIntroduktion till CSS
Introduktion till CSSAnton Tibblin
 
HTML - Tabeller och formulär
HTML - Tabeller och formulärHTML - Tabeller och formulär
HTML - Tabeller och formulärAnton Tibblin
 
Introduktion till HTML
Introduktion till HTMLIntroduktion till HTML
Introduktion till HTMLAnton Tibblin
 
LocalStorage - GeoLocation - Media
LocalStorage - GeoLocation - MediaLocalStorage - GeoLocation - Media
LocalStorage - GeoLocation - MediaAnton Tibblin
 

More from Anton Tibblin (20)

2024 - Localstorage & cookies Geolocation Mediahantering.pdf
2024 - Localstorage & cookies Geolocation Mediahantering.pdf2024 - Localstorage & cookies Geolocation Mediahantering.pdf
2024 - Localstorage & cookies Geolocation Mediahantering.pdf
 
VT24 - jQuery & Ajax - Flerplattformsapplikationer med webbtekniker
VT24 - jQuery & Ajax - Flerplattformsapplikationer med webbteknikerVT24 - jQuery & Ajax - Flerplattformsapplikationer med webbtekniker
VT24 - jQuery & Ajax - Flerplattformsapplikationer med webbtekniker
 
VT24 - Responsiv design & Ramverk inom webbutveckling
VT24 - Responsiv design & Ramverk inom webbutvecklingVT24 - Responsiv design & Ramverk inom webbutveckling
VT24 - Responsiv design & Ramverk inom webbutveckling
 
DA395A - VT24 - JavaScript & Document object model
DA395A - VT24 - JavaScript & Document object modelDA395A - VT24 - JavaScript & Document object model
DA395A - VT24 - JavaScript & Document object model
 
VT24 - DA395A - Kursintroduktion: Flerplattformsapplikationer med webbtekniker
VT24 - DA395A - Kursintroduktion: Flerplattformsapplikationer med webbteknikerVT24 - DA395A - Kursintroduktion: Flerplattformsapplikationer med webbtekniker
VT24 - DA395A - Kursintroduktion: Flerplattformsapplikationer med webbtekniker
 
HT23 - DA354A - Webbprogrammering med Python
HT23 - DA354A - Webbprogrammering med PythonHT23 - DA354A - Webbprogrammering med Python
HT23 - DA354A - Webbprogrammering med Python
 
HT23 - DA354A - Fil- och felhantering
HT23 - DA354A - Fil- och felhanteringHT23 - DA354A - Fil- och felhantering
HT23 - DA354A - Fil- och felhantering
 
HT23 - DA354A - Listor och lexikon
HT23 - DA354A - Listor och lexikonHT23 - DA354A - Listor och lexikon
HT23 - DA354A - Listor och lexikon
 
HT23 - DA354A - Kursintroduktion
HT23 - DA354A - KursintroduktionHT23 - DA354A - Kursintroduktion
HT23 - DA354A - Kursintroduktion
 
HT23 - DA106A - Användbarhet (2)
HT23 - DA106A - Användbarhet (2)HT23 - DA106A - Användbarhet (2)
HT23 - DA106A - Användbarhet (2)
 
HT23 - DA106A - Användbarhet 1
HT23 - DA106A - Användbarhet 1HT23 - DA106A - Användbarhet 1
HT23 - DA106A - Användbarhet 1
 
HT23 - DA106A - Ramverk & Bibliotek
HT23 - DA106A - Ramverk & BibliotekHT23 - DA106A - Ramverk & Bibliotek
HT23 - DA106A - Ramverk & Bibliotek
 
HT23 - DA106A - Responsiv webbutveckling
HT23 - DA106A - Responsiv webbutvecklingHT23 - DA106A - Responsiv webbutveckling
HT23 - DA106A - Responsiv webbutveckling
 
HT23 - DA106A - Layout (2)
HT23 - DA106A - Layout (2)HT23 - DA106A - Layout (2)
HT23 - DA106A - Layout (2)
 
HT23 - DA106A - Layout med CSS (1)
HT23 - DA106A - Layout med CSS (1)HT23 - DA106A - Layout med CSS (1)
HT23 - DA106A - Layout med CSS (1)
 
Introduktion till CSS
Introduktion till CSSIntroduktion till CSS
Introduktion till CSS
 
HTML - Tabeller och formulär
HTML - Tabeller och formulärHTML - Tabeller och formulär
HTML - Tabeller och formulär
 
Introduktion till HTML
Introduktion till HTMLIntroduktion till HTML
Introduktion till HTML
 
Kursintroduktion
KursintroduktionKursintroduktion
Kursintroduktion
 
LocalStorage - GeoLocation - Media
LocalStorage - GeoLocation - MediaLocalStorage - GeoLocation - Media
LocalStorage - GeoLocation - Media
 

HT16 - DA156A - Introduktion till JavaScript

  • 1. JavaScript - Ge liv till statiska HTML-sidor
  • 2. Frågor på det vi gjort hittills? • Förra föreläsningen (layout med CSS) • Inlämningsuppgiften? • Övrigt?
  • 3. Dagens föreläsning 1. Snabb introduktion till vad JavaScript är 2. JavaScripts historik 3. Variabler 4. In-/utmatning av data 5. Exempel
  • 4. Programmering handlar om att instruera en maskin eller del av en maskin […] att utföra ett visst arbete.
  • 5.
  • 6. Vad är JavaScript? • En teknik för att utveckla interaktiva webbsidor • Ett programspråk inbäddat i webbläsare http://en.wikipedia.org/w/index.php?title=File:Unofficial_JavaScript_logo_2.svg&page=1
  • 7. Har ni sett det innan?
  • 8. I vilket sammanhang används JavaScript? JavaScript CSS HTML Innehåll Interaktivitet Utformning Struktur Innehåll
  • 9. Exempel på JavaScript • Bildspel: http://wowslider.com/javascript-slideshow-quiet-rotate-demo.html • Dynamisk innehåll: http://gmail.com, http://facebook.com, https://twitter.com/ • Beräkningar: http://valuta.se • Validera formulär: http://yensdesign.com/tutorials/validateform/ • Dialogrutor: http://tibbelit.se/film • Interaktiva element: http://mrdoob.com/projects/chromeexperiments/ball_pool/ • Spel: http://www.phoboslab.org/ztype/ • Animationer: http://codepen.io/juliangarnier/pen/idhuG • och mycket mera!
  • 10. JavaScript - Historik • Utvecklades av Netscape under mitten av 90-talet • Har inget med Java att göra – det är ett eget programmeringsspråk • Microsoft skapade sin egen version av JavaScript – Jscript • På senare dagar (2005) har ajax blivit en populärt • Lägger till extra funktionalitet för webben och webbläsare
  • 11. Vad kan man göra med JavaScript? • I princip vad du vill! (som har med webbsidor att göra) • Men det används ofta till att skapa interaktiva webbsidor • Med interaktiv menas: Reagera på användaras handlingar och modifiera webbsidans innehåll
  • 12. Programmering • Att ge instruktioner till en maskin så att den utför det man vill • Del av att utveckla programvara • Kreativ problemlösande verksamhet • Konstform?
  • 13. Programspråk • En dator kan endast utföra ett begränsat antal instruktioner • Varje instruktion är mycket begränsad, t.ex. - Addera innehållet i två minnesutrymmen - Flytta innehållet i ett minnesutrymme till ett annat utrymme
  • 14. Maskinkod för att skriva ut 1+2+…+10=55 00110001 00000000 00000000 00110001 00000001 00000001 00110011 00000001 00000010 01010001 00001011 00000010 00100010 00000010 00001000 01000011 00000001 00000000 01000001 00000001 00000001 00010000 00000010 00000000 01100010 00000000 00000000
  • 15. Lågnivåspråk • Språk som behöver liten eller ingen bearbetning för att exekveras på en dator • Maskinkod – kod som maskinen kan exekvera direkt • Assemblerspråk – kräver en viss översättning, s.k. assemblering, innan programmet kan exekveras.
  • 16. Högnivåspråk • Mer anpassade för människor att läsa/skriva • Måste översättas (interpreteras eller kompileras) till maskinkod innan det kan exekveras. • En instruktion i ett högnivåspråk leder ofta till ett antal instruktioner i maskinkod. • JavaScript, Java, C#, C++, Python, Ruby, ASP, JSP – och 5000(?) andra.
  • 17.
  • 18. JavaScript • För JavaScript sköter webbläsaren körningen • Webbläsaren är alltså en interpretator (tolk) för JavaScript-kod • JavaScript är ett av de enklaste programspråken att komma igång med
  • 19. Programspråk • Programspråk är, till skillnad från t.ex. svenska och engelska, formella språk • De ska uttrycka något utan tvetydighet. • Men programspråk delar vissa likheter med naturliga språk – vokabulär och grammatik. • Även uttryck och instruktioner.
  • 20.
  • 21. The man hit the boy with the stick Who is holding the stick? Requirements Management, DA254A 7.5 ECTS, VT2014, annabella.loconsole@mah.se 21 MAN BOY
  • 22. The man hit the boy with the stick Who is holding the stick? Requirements Management, DA254A 7.5 ECTS, VT2014, annabella.loconsole@mah.se 22 MAN BOY
  • 23. Uttryck (expression) - Kod som producerar ett värde • UTTRYCK • ”5”+”8” • 3 + 5 • 20/2 + 3*4 • "Hejsan" • "Hej” + ” ” + "du" • 5 > 2 • VÄRDE • 58 • 8 • 22 • "Hejsan" • "Hej du" • true
  • 24. Instruktion (statement) • Ett program består av en lista instruktioner • En instruktion består av minst ett uttryck och avslutas med ett semikolon ”;” 5; alert(”Hej och välkommen”); var birthYear = 2016 – age;
  • 25. Att skapa ett program • Uppgiftsformulering, vad är det för uppgift som ska lösas? • Vilka steg behöver utföras för att lösa uppgiften? • Vilka instruktioner kan användas för att utföra varje delsteg (algoritm)
  • 26. Algoritm • En beskrivning över hur man löser ett problem. Algoritmen består av ett antal instruktioner och beskriver i vilken ordning instruktionerna ska utföras. http://www.recepten.se/recept/pasta_carbonara.html
  • 28.
  • 29. Övning! • Vilka instruktioner (vilken algoritm) krävs för en dator för att sortera följande bokhög i bokstavsordning: • Modern PHP • Graph Databases • Rest in Practice • Användbarhet i praktiken • Information Architecture • Computer science illuminated
  • 30. Att tänka på • Uppgiftsformulering, vad är det för uppgift som ska lösas? Formulera uppgiften i termer av vad en dator kan utföra. Avgränsa problemet, vad är en del av uppgiften? Vad ingår inte? • Algoritmkonstruktion, vilka algoritmer är de mest lämpliga för detta problem? Konstruera strukturen på programmet och skriv ner så kallad pseudokod. Detta är kreativ problemlösning. • Kodning, översätt pseudokoden till ett programmeringsspråk t.ex. JavaScript eller Python • Dokumentation, beskriva din lösning både i löpande text, med hjälp av UML och som kommentarer i programmet. • Verifikation, är programmet byggt på ett bra sätt så att det löser uppgiften utan att fel uppstår och det är lätt att underhålla. • Validering, är användaren nöjd med hur programmet fungerar. Underhåll, åtgärda buggar, förbättra och lägg till funktionalitet. • Underhåll, åtgärda buggar, förbättra och lägg till funktionalitet.
  • 31. JavaScript • JavaScript skrivs som ren text • Det kan skrivas antingen inbäddat direkt i HTML-koden • Eller i en separat fil, som sedan inkluderas i HTML-dokumentet
  • 32. Inbäddat skript • HTML-elementet <script> används för att definiera ett JavaScript- block. - Jämför detta med att inkludera inbäddad CSS-mall med hjälp av <style> • Elementet <script> kan placeras var som helst i HTML-dokumentet, inte bara i <head> • JavaScript-koden körs på den plats JavaScript-elementet finns.
  • 33.
  • 34. Externt skript • JavaScript-koden sparas i en separat fil, med filändelsen .js • Skriptfilen inkluderas i HTML-dokumentet, också med hjälp av elementet <script> <script src="minkod.js" type="text/javascript"></script>
  • 36. Datatyper i JavaScript • Det finns sex datatyper i JavaScript 1. Number (siffror) 2. String (textsträngar) 3. Boolean (booleskt värde; sant/falskt) 4. Array 5. Object 6. Undefined & null
  • 37. Nummer (number) • Kan vara heltal (integer) eller decimaltal (float) • Kan vara negativa eller positiva • Stödjer de vanliga matematiskta operatorerna 3*5 + 2.5 17.5 115*4 – 4 + 88 / 2 500
  • 38. Strängar (string) • En uppsättning av (i princip) vilka tecken som helst • Skapas med citattecken ” eller apostrofer ’ • Kan läggas hop (konkateneras) • Ex. ”Hello World” ’Hello World’ ’Mister ’ + ”X”
  • 39. Booleanskt värde (boolean) • Representerar antingen sant (true) eller falskt (false) • Används ofta vid jämförelser Större än > Mindre än < Exakt lika == Inte lika != • Flera jämförelser kan kombineras och && eller ||
  • 40. Booleanskt värde - exempel • 10 > 3 true • 3 > 10 false • 5 == 2+3 true • "ABC" == "ABC” true • 4 > 3 && "hej" == "då” false • 4 > 3 || "hej" == "då” true
  • 41. 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; // skapa variabel name = "Bob"; // tilldela värde var age = 40; // skapa och tilldela samtidigt
  • 42. Exempel var tal1, tal2; tal1 = 50; tal2 = 75; var result = tal1 + tal2; // Funkar också: var tal1 = 50, tal2 = 75;
  • 43. Inmatning/utmatning • Vi kan lagra värden och göra beräkningar, men hur ska vi hämta data från användaren och hur visas resultaten? • JavaScript har inbyggda funktioner för att: - fråga användaren efter ett värde - visa ett värde i en ruta - skriva ett värde till HTML-dokumentet - läsa och modifiera innehåll i HTML-dokument
  • 44. Exempel • // Visa ruta att skriva i och spara • // i variabeln `svar`: • var svar; • svar = prompt("Var god skriv") • // Visa meddelanderuta med texten • // ‘Hej och välkommen’: • alert("Hej och välkommen"); • // Skriv texten ‘Bonustext’ till • // HTML-dokumentet • document.write("Bonustext")