Professional Documents
Culture Documents
Grundläggande Programmering I Javascript 1
Grundläggande Programmering I Javascript 1
Frelsning
Grundlggande Programmering i JavaScript 1
Computer science education cannot make anybody an expert programmer any more than studying brushes and pigment can make somebody an expert painter.
- Eric Raymond
Kristian Ekberg
information
www tjnst
data
anvndare
klient
server
data bas
ntverk
Innehll
Ngra praktiska saker Repetition
Repetition frn HTML labbarna Repetition frn Excel labbarna
Genomgng programmeringssprk
Ngra punkter att titta p Hello World! program Lab 10
Temperaturtagningen
Ligger ute t om onsdag Helt anonymt och frivilligt deltagande !!
Inlmningsuppgift 1
12 begrda kompletteringar (89% klara)
Inlmningsuppgift 2
34 begrda kompletteringar (69% klara)
Inlmningsuppgift 3
Deadline idag Rttning pbrjas snart
Uppskattning 2011-11-28: 110-112 aktiva studenter Uppskattning 2011-11-28: 110-112 aktiva studenter
Inlmningsuppgifter
Frutstter att alla laborationerna har gjorts fullstndigt! Det r ganska ofta som det viktigaste r i slutet p en laboration, pga pedagogiska orsaker
Tentamen
Lnk finns p kursen Instuderingsrd finns p lnkad sida Tentamen omfattar hstens frelsningar och material angivet p lnkad sida Frgor?
Grundlggande programmering
Grundlggande terminologi och begrepp Grundlggande konstruktioner Grundlggande funktionalitet Allts: vi lr oss en grund att st p infr kommande kursmoment och pbyggnadskurser Sprket r JavaScript som lmpar sig bra fr undervisning i grundlggande programmering
Okomplicerat sprk Okomplicerad utvecklingsmilj Pminner syntaxmssigt om Java, C#, C, C++,
Grundlggande programmering
r programmering svrt?
Nej, inte speciellt. Vem som helst kan lra sig programmera. Fast det underlttar om man r intresserad och tycker det r kul ! Man fr inte vara rdd att gra fel. Tvrtom: inget gr snder, det r genom att prva sig fram som man hittar lsningar och lr sig! Alla programmerare gr fel, det ingr i jobbet. Det r drfr man arbetar med testning
Deklarativ
Beskrivande, man talar om hur saker ska vara Statiskt
Tid finns inte
Imperativ
Genomfrande, man talar om hur saker ska gras Dynamiskt
Tid finns
(Jfr bilkp) (Jfr bilkp) Statiskt: frg, form, last etc Statiskt: frg, form, last etc Dynamiskt: provkrning Dynamiskt: provkrning
JavaScript historia
JavaScript is a dialect of the ECMAScript standard and is characterized as a dynamic, weakly typed, prototype-based language with first-class functions. JavaScript was influenced by many languages and was designed to look like Java, but to be easier for nonprogrammers to work with.
http://en.wikipedia.org/wiki/JavaScript
Utvecklat av Brendan Eich till Netscapes webblsare, frsta release 1995 Microsofts version kallas JScript, frsta release 1996 Iochmed webblsarnas spridning har sprket ftt en enorm spridning! Utvecklats lngsamt: p 10 r har det knappt ndrats alls (!) JavaScript frvaltas idag av Mozilla https://developer.mozilla.org/en/JavaScript ECMAScript frvaltas av Ecma International (non profit, Geneva)
JavaScript Revival! Language revival of an extinct language Trend (?): JavaScript r just nu p vg att bli inne frn att ha varit ute Pgr just nu mycket tack vare Douglas Crockford Han stter JavaScript i fokus, dissekerar sprket, och arbetar ven med att frbttra det. Inte s mnga som vet speciellt mycket om JavaScript.
m St
ts all r me
e int
! elt h
JavaScript
Grundlggande programmering - vilket programmeringssprk r bst? Sprk kommer och gr, men kunskap bestr
Olika sprk r bra fr olika tillmpningar Det r (tyvrr) mode i programmeringssprk och fort gr det! Redan etablerade (gamla) sprk: C, C++, Java, C#, JavaScript JavaScript r lite ny-modernt igen just nu vi r inne! Sk sjlv info p Internet om populra programmeringssprk (hr r en lnk)
En riktigt duktig programmerare kan programmera vad som helst i vilket sprk som helst, rtt & snabbt
Lr sig snabbt ett nytt sprk Gr en sprkoberoende lsning frst Implementerar det sen i sprket Passar grna p att bygga om/frbttra sprket samtidigt
Programsekvens
Interpretatorn tolkar uppifrn och ner och frn vnster till hger, precis som vi lser
Men det finns undantag pga prioritet (terkommer vi till senare)
Utvecklingsmilj
Programsekvens
Kllkod beskriver en sekvens (ordning i tiden) av det som programmet ska genomfra (jfr recept) Kllkod kan skrivas efter varandra p samma rad
kllkod; kllkod; kllkod; kllkod; kllkod; kllkod; tolkning
Observera! Observera!
tolkning
En kllkodsrad i iJavaScript mste En kllkodsrad JavaScript mste avslutas med ett semikolon ;; !!! avslutas med ett semikolon !!! (jfr slut-tag i iHTML) (jfr slut-tag HTML)
Programsekvens
kllkod; kllkod; tolkning kllkod; kllkod; gr 10 gnger { grs kllkod; kllkod; 10 ggr } kllkod; kllkod; kllkod; kllkod; om (a > 0) a=0 kllkod; kllkod; kllkod; kllkod; kllkod; kllkod;
lite som ett spr, lite som ett spr, med vxlar, tnk med vxlar, tnk modelljrnvg ... modelljrnvg ...
Programsekvens
Fel (bug)
Syntaxfel upptcks ofta innan programmet startas Interpretatorn kan ibland arbeta (tolka/utfra) tills den stter p ett programfel D stannar den (och i bsta fall rapporterar felet) All kllkod innan felet upptcktes har utfrts All kllkod efter felet kommer ej att utfras Detta betyder att vi kan kllkod; kllkod; kra kllkod som kllkod; innehller fel, fram till felet kllkod; Fel! Stopp ! klXXZd; Sedan stannar exekveringen kllkod; Blir ej Den felaktiga kllkoden kllkod; tolkat/utfrt kllkod; utfrs ej
Programsekvens
Vi kollar !!
(Demonstration av Hello World! program)
Procedur
utfr ett arbete och returnerar inget vrde
Funktion Funktion r synonymt med avbildning Kommer frn matematiken, entydig definition av vrdet utifrn en eller flera oberoende variabler
Exempel:
Motsvarar deklaration i programmering
=xx
multiplicera x med x
Anvndning av funktionen motsvarar anrop i programmering
Man definierar hur ens funktion fungerar och man kan skicka in olika vrden i den och d antar funktionen olika vrden beroende p det man skickat in i den
function kvadrat(x) function kvadrat(x) { { return x * x; return x * x; } } kvadrat(1); kvadrat(1); kvadrat(2); kvadrat(2); kvadrat(3); kvadrat(3); kvadrat(4); kvadrat(4); argument
Returnera det x som vi skickar in multiplicerat med sig sjlv ger vrdet 1 ger vrdet 4 ger vrdet 9 ger vrdet 16
Funktion Kllkoden i en funktion krs enbart nr funktionen anropas Drfr kan vi lgga vr deklaration av funktionen frst i kllkoden Interpretatorn hoppar ver funktionsdeklarationen, men vet att funktionen finns och nr vi anropar den s krs den. function kvadrat(x) function kvadrat(x) Men nr vi kr s ser { { vi inget resultat return x * x; return x * x; } } vi mste skriva ut resultaten ocks !
kvadrat(1); kvadrat(1); kvadrat(2); kvadrat(2); kvadrat(3); kvadrat(3); kvadrat(4); kvadrat(4);
Utmatning Vi kan anvnda en frdig funktion i webblsaren som heter alert() och som ppnar ett litet info fnster Eller vi kan anvnda funktionen document.writeln() Do try this at home! (testa sjlv)
function kvadrat(x) function kvadrat(x) { { return x * x; return x * x; } } document.writeln( kvadrat(1) ); document.writeln( kvadrat(1) ); document.writeln( kvadrat(2) ); document.writeln( kvadrat(2) ); document.writeln( kvadrat(3) ); document.writeln( kvadrat(3) ); document.writeln( kvadrat(4) ); document.writeln( kvadrat(4) ); Vi skickar in resultatet frn kvadrat i funktionen document.writeln function kvadrat(x) function kvadrat(x) { { return x * x; return x * x; } } alert( kvadrat(1) ); alert( kvadrat(1) ); alert( kvadrat(2) ); alert( kvadrat(2) ); alert( kvadrat(3) ); alert( kvadrat(3) ); alert( kvadrat(4) ); alert( kvadrat(4) ); Vi skickar in resultatet frn kvadrat i funktionen alert
Programsekvens
Vi kollar !!
(Demonstration av anrop p kvadrat,utmatning, samt anvndning av sprutskrifter (eng trace) i funktionen och i programmet)
Delprogram (funktionsanrop)
Programsekvensen kan styras mha funktionsanrop Efter att ett funktionsanrop r klart fortstter interpretatorn med nsta instruktion efter anropet huvudprogram huvudprogram kllkod; exekvering kllkod; kllkod; kllkod; anrop a; kllkod; kllkod; kllkod; kllkod; anrop b; kllkod; kllkod; kllkod; kllkod; delprogram a delprogram a kllkod; anrop c; kllkod; anrop d; kllkod; delprogram c delprogram c kllkod; kllkod; kllkod; kllkod; kllkod;
Parameter vs Argument Parametrar r de variabler som anges i deklarationen av funktionens huvud (anvnds fr att kunna skicka in vrde)
En parameter fungerar som en variabel enbart i funktionens kropp
Allts:
parametern fr sitt vrde frn argumentet vid anropet, dvs nr funktionen krs blir
parameter = argument
Reserverade ord & kommentarer Operatorer och prioritet Inbyggda stdfunktioner (bibliotek)
Strngoperationer Matematik funktioner Abstrakta datatyper? Typkontroller
Sprkkonstruktioner (syntax)
Iterationer Selektioner Hantering av undantag och fel Deklaration och anrop av funktioner Konventioner namngivning
Lab 10 ! Lab 10 !
Hello World!
int main() int main() { { printf("hello, world"); printf("hello, world"); return 0; return 0; } }
Hello World! Utmrkt som frsta program fr man fr ordning p Utvecklingsmiljn (editor, ev kompilator, ev path variabler etc etc) Utmatningsmjligheter och syntax fr det Man kan enkelt bygga p / bygga om detta enkla programmet och testa lite fler saker som strngoperationer, etc etc och s r man igng!
Kunskap: Hela Internet r fullt med Hello World! program i alla upptnkliga sprk, sk sk sk !!
Variabler i JavaScript
Repetition
Ngra praktiska saker Repetition
Repetition frn HTML labbarna Repetition frn Excel labbarna
Genomgng programmeringssprk
Ngra punkter att titta p Hello World! program Lab 10
Tack fr idag!