{"id":126,"date":"2008-10-22T14:47:51","date_gmt":"2008-10-22T12:47:51","guid":{"rendered":"http:\/\/www.kristiansborg.dk\/bibliotek\/?page_id=126"},"modified":"2008-10-22T14:47:51","modified_gmt":"2008-10-22T12:47:51","slug":"l%c3%a6r-javascript-1-grundl%c3%a6ggende-javascript","status":"publish","type":"page","link":"https:\/\/www.kristiansborg.dk\/bibliotek\/artikler\/it\/l%c3%a6r-javascript-1-grundl%c3%a6ggende-javascript\/","title":{"rendered":"L\u00e6r Javascript 1: Grundl\u00e6ggende Javascript"},"content":{"rendered":"<p><em>Kristian Hansen<\/em> forts\u00e6tter nu Computer PCs store Internet-kursus. Denne gang giver han en introduktion til JavaScript.<\/p>\n<p>Tidligere i dette kursus er det blevet beskrevet, hvordan man kan g\u00f8re sine hjemmesider mere interessante med VBScript. Denne artikel og de to n\u00e6ste i kurset vil beskrive JavaScript, der ogs\u00e5 er et scriptsprog.<\/p>\n<p><strong>Java og JavaScript<\/strong><\/p>\n<p>For at sl\u00e5 det fast en gang for alle: den st\u00f8rste lighed mellem Java og JavaScript er navnene. Java er et fuldt programmeringssprog, hvor man blandt andet kan udvikle fuldst\u00e6ndige applikationer. Java-programmer skal kompileres, hvilket vil sige, at man skal have et specielt program &#8211; en compiler &#8211; for at skrive dem. JavaScript derimod er et scriptsprog. De programmer, der skrives i JavaScript skal fortolkes af andre programmer &#8211; interpreters &#8211; som for eksempel Internet-browsere. For at skrive JavaScript-programmer beh\u00f8ver man ingen compiler.<\/p>\n<p>Syntaksen i JavaScript minder lidt om syntaksen i Java, men p\u00e5 den anden side ogs\u00e5 om syntaksen i andre programmeringssprog, som for eksempel C++. Man kan lave mange ting i Java, som man ikke kan lave i JavaScript, og JavaScript har ogs\u00e5 nogle funktioner, der ikke findes i Java.<\/p>\n<p><strong>Browseren<\/strong><\/p>\n<p>Som n\u00e6vnt kan JavaScript-programmer for eksempel vises i en browser. Det er imidlertid ikke alle browsere, der underst\u00f8tter JavaScript, men de to mest udbredte &#8211; Internet Explorer og Netscape Navigator &#8211; g\u00f8r. Desv\u00e6rre underst\u00f8tter de ikke helt JavaScript p\u00e5 samme m\u00e5de, men mere om det senere i kurset.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.kristiansborg.dk\/bibliotek\/wp-content\/uploads\/2008\/10\/js-ie.jpeg\" alt=\"Hvis man selv definerer sin Internet-sikkerhed i Internet Explorer 4, kan man angive, om JavaScript skal v\u00e6re aktiveret eller ej.\" width=\"353\" height=\"405\" \/><\/p>\n<p>F\u00e6lles for begge browsere er det imidlertid, at brugeren selv kan v\u00e6lge, om JavaScripts skal udf\u00f8res eller ej. I Internet Explorer 4 g\u00f8res det fra menuen Vis, hvor punktet Internet-indstillinger viser en dialogboks med blandt andet sikkerhedsindstillinger. Hvis man v\u00e6lger selv at definere sine sikkerhedsindstillinger, kan man blandt andet angive, om JavaScript skal v\u00e6re aktivt.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.kristiansborg.dk\/bibliotek\/wp-content\/uploads\/2008\/10\/js-navigator.jpeg\" alt=\"I Netscape Navigator 4 kan man i pr\u00e6ferencerne indstille, om JavaScript skal v\u00e6re aktiveret.\" width=\"545\" height=\"459\" \/><\/p>\n<p>I Netscape Navigator 4 skal man v\u00e6lge Pr\u00e6ferencer fra Rediger-menuen. I den dialogboks der vises, skal man v\u00e6lge Avanceret i listen i til venstre. Der vil nu blive vist en r\u00e6kke punkter i h\u00f8jre side af dialogboksen &#8211; et af disse er Aktiv\u00e9r JavaScript.<\/p>\n<p><strong>Brugen<\/strong><\/p>\n<p>JavaScript kan b\u00e5de bruges p\u00e5 www-servere og klienter (browsere). Denne artikel vil koncentrere sig om klienterne &#8211; det vil sige, hvordan man kan indbygge JavaScript i sine HTML-dokumenter for at f\u00e5 en mere sp\u00e6ndende hjemmeside.<\/p>\n<p>Ligesom VBScript kan JavaScript skrives direkte i HTML-dokumenterne.<\/p>\n<p><strong>Sproget<\/strong><\/p>\n<p>Stort set er programmering programmering &#8211; ligegyldigt hvilket sprog, man bruger. Der er en masse udtryk, der er de samme. Derfor kan det anbefales, at man starter med at l\u00e6se artiklen Grundl\u00e6ggende VBScript i Computer PC 3\/98. Denne artikel vil naturligvis forklare, hvordan de forskellige udtryk overf\u00f8res til JavaScript og l\u00e6ses den alene, vil man alligevel ende med at have et godt indblik i, hvordan JavaScript fungerer.<\/p>\n<p><strong>Funktioner<\/strong><\/p>\n<p>En funktion er en samling af kommandoer, der tilsammen udf\u00f8rer en opgave. Det kan for eksempel v\u00e6re at beregne arealet af et rektangel. I VBScript skelnes mellem funktioner og procedurer, hvor funktioner returnerer en v\u00e6rdi &#8211; ligesom matematiske funktioner &#8211; mens procedurer ingen returv\u00e6rdi har. Denne adskillelse findes ikke i JavaScript &#8211; her kaldes begge typer for funktioner. Procedurer opfattes som funktioner, der ingenting returnerer. En funktion indledes med ordet function. Herefter f\u00f8lger navnet p\u00e5 funktionen, hvorefter parametrene angives i parentes. Parametrene er de v\u00e6rdier, der skal inds\u00e6ttes i den formel, funktionen definerer. For at blive ved areal-eksemplet vil parametrene v\u00e6re h\u00f8jde og bredde. Hvis en funktion ikke beh\u00f8ver nogen parametre, s\u00e6ttes en tom parentes efter funktionsnavnet.<\/p>\n<p>For at angive, at de kommandoer, der definerer funktionen, h\u00f8rer sammen, omkranses de af to kr\u00f8llede parenteser &#8211; { og }. De kr\u00f8llede parenteser bruges mange steder i JavaScript til at angive, at flere linier h\u00f8rer sammen. Efter den indledende parentes, angives de kommandoer funktionen skal udf\u00f8re. I dette tilf\u00e6lde er det en simpel beregning. At der st\u00e5r return f\u00f8r beregningen angiver, at det er denne v\u00e6rdi funktionen skal returnere. Areal-eksemplet er vist i eksempel 1.<\/p>\n<p><strong>Semikolonerne<\/strong><\/p>\n<p>Som det ses i eksempel 1, skal alle kommandoer i JavaScript afsluttes med et semikolon for at angive, at der er tale om en afsluttet kommando. S\u00e5 skulle man tro, at hvis man satte et semikolon efter hver linie, ville alt v\u00e6re godt, men s\u00e5dan er det desv\u00e6rre ikke. Det er nemlig ikke alt, der regnes for en kommando. For eksempel er starten af en funktion &#8211; funktionshovedet &#8211; ikke en kommando. Generelt kan man tage det som en tommelfingerregel, at linier, der kan efterf\u00f8lges af en indledende kr\u00f8llet parentes, ikke er kommandoer.<\/p>\n<p><strong>Variabler<\/strong><\/p>\n<p>Variabler er en vigtig del af ethvert programmeringssprog. De parametre, der sendes med til en funktion, er \u00e9n slags variable, men man kan godt have brug for andre og flere variable. Hvis man vil oprette en ny variabel i en funktion, kan man bare bruge den. Hvilket navn, man v\u00e6lger at give den, er helt op til en selv &#8211; blot skal man lade v\u00e6re med at give den samme navn som en funktion &#8211; det g\u00e6lder b\u00e5de funktioner, man selv har defineret, og funktioner, der er en del af JavaScript.<\/p>\n<p>Variabler kan indeholde al mulig information &#8211; tekster, heltal, decimaltal og datoer. Tal kan man bare skrive &#8211; blot skal man huske, at punktum bruges som decimalkomma &#8211; mens tekster skal omkranses af anf\u00f8rselstegn (&#8220;tekst&#8221;) eller apostroffer (&#8216;tekst&#8217;). I VBScript kan man desuden angive datoer ved hj\u00e6lp af #dato#. Det kan man ikke i JavaScript &#8211; det vil senere i kurset blive gennemg\u00e5et, hvordan man h\u00e5ndterer datoer i JavaScript.<\/p>\n<p><strong>Brug af variabler<\/strong><\/p>\n<p>Der er imidlertid ikke meget ved at kunne gemme en v\u00e6rdi i en variabel, hvis man ikke kan bruge den til noget. Det, man oftest bruger dem til, er at se, om en given betingelse er opfyldt. Mener man for eksempel, at personer, der vejer over 200 kilo, er overv\u00e6gtige, kan man gemme deres v\u00e6gt i en variabel, og derefter enten skrive &#8220;Du er slank&#8221; eller &#8220;Du er overv\u00e6gtig&#8221; baseret p\u00e5 v\u00e6rdien af variablen. Eksempel 2 viser, at man g\u00f8r det ved hj\u00e6lp af if-kommandoen. Efter if angives et udtryk, hvis sandhedsv\u00e6rdi afg\u00f8r, om den f\u00f8lgende kommando skal udf\u00f8res. I dette tilf\u00e6lde er udtrykket vaegt &gt; 200. Hvis dette er sandt, udf\u00f8res den n\u00e6ste linie, der s\u00e6tter teksten &#8220;Du er overv\u00e6gtig&#8221; ind i variablen besked. Hvis man har brug for at f\u00e5 flere linier udf\u00f8rt, kan kr\u00f8llede parenteser bruges til at samle dem. else angiver, at den efterf\u00f8lgende linie eller blok af linier skal udf\u00f8res, hvis udtrykket ikke er sandt. Det er alts\u00e5 aldrig muligt at b\u00e5de linien efter if og efter else bliver udf\u00f8rt.<\/p>\n<p><strong>if for viderekomne<\/strong><\/p>\n<p>Hvis man har brug for at kontrollere en variabel for flere forskellige v\u00e6rdier, kan man g\u00f8re det ved hj\u00e6lp af en r\u00e6kke if-s\u00e6tninger. Det er bare v\u00e6sentligt nemmere at bruge en swith-case i stedet. En switch-case svarer til Select-Case i VBScript. Eksempel 3 viser, hvordan switch-case kan bruges til at bestemme hvilken medalje en given placering medf\u00f8rer. Som det ses, skal switch efterf\u00f8lges af en kr\u00f8llet parentes &#8211; det er for at angive, at der er flere case-s\u00e6tninger knyttet til switch-s\u00e6tningen. Hver af de v\u00e6rdier, der skal kontrolleres p\u00e5, f\u00e5r sin egen case-s\u00e6tning. Efter kolonet kan man skrive de programlinier, der skal udf\u00f8res, hvis variablen har den p\u00e5g\u00e6ldende v\u00e6rdi. Bem\u00e6rk, at man ikke skal samle disse linier med kr\u00f8llede parenteser, selvom de h\u00f8rer sammen. Efter case-s\u00e6tninger udf\u00f8res alle s\u00e6tninger, indtil break-kommandoen. Derfor er det s\u00e6rdeles vigtigt at huske break-kommandoen efter hver case-s\u00e6tning. Ellers vil linierne for de efterf\u00f8lgende cases ogs\u00e5 blive udf\u00f8rt. Det er ikke n\u00f8dvendigt at have en break-kommando efter den sidste case &#8211; derefter er der jo ingen linier, der kan risikere at blive udf\u00f8rt. Eksemplet viser ogs\u00e5, at man kan &#8211; i stedet for en case-s\u00e6tning &#8211; kan bruge ordet default. Det angiver, at de efterf\u00f8lgende programlinier skal udf\u00f8res, hvis ingen af de andre cases udf\u00f8res.<\/p>\n<p><strong>L\u00f8kker<\/strong><\/p>\n<p>L\u00f8kker bruges til at gentage den samme programstump &#8211; stort set &#8211; flere gange i et program. Sammenlignet med VBScript har JavaScript ikke ret mange l\u00f8kkestrukturer, men alligevel har de stort set den samme funktionalitet. Eksempel 4 viser de forskellige l\u00f8kketyper i JavaScript. I b\u00e5de while og do-while l\u00f8kkerne skal variablerne s\u00e6ttes til 0 uden for l\u00f8kken. Sammen med while angives k\u00f8rselsbetingelsen &#8211; det er den betingelse, der skal v\u00e6re opfyldt for at programlinierne inde i l\u00f8kken udf\u00f8res. I dette eksempel er k\u00f8rselsbetingelsen tal &lt; 10. Det vil sige, at l\u00f8kken bliver k\u00f8rt, s\u00e5 l\u00e6nge tal har en v\u00e6rdi, der er mindre end 10. Som det ses, er den eneste forskel p\u00e5 while og do-while placering af while-udtrykket. I while-strukturen s\u00e6ttes while f\u00f8rst, mens do-while-strukturer indledes med do og afsluttes med while. Kontrollen af k\u00f8rselsbetingelsen foretages ved while-kommandoen. Det vil sige, at indholdet af en do-while-l\u00f8kke bliver udf\u00f8rt, inden k\u00f8rselsbetingelsen kontrolleres f\u00f8rste gang. Man er s\u00e5ledes altid sikker p\u00e5, at do-while-l\u00f8kken bliver udf\u00f8rt en gang &#8211; denne garanti har man ikke ved while-l\u00f8kker.<\/p>\n<p>For-l\u00f8kken er anderledes end while og do-while. Den er designet specielt til de tilf\u00e6lde, hvor en l\u00f8kke skal k\u00f8re, mens en variabel t\u00e6lles op. Den variabel, der bliver talt op kaldes &#8211; logisk nok &#8211; for t\u00e6ller-variablen. I dette eksempel er t\u00e6ller-variablen tal. Efter ordet for er det muligt at angive tre ting, der alle samles i en parentes og adskilles med semikolon. Den f\u00f8rste er en initaliseringsdel, der udf\u00f8res inden l\u00f8kken k\u00f8res f\u00f8rste gang. I dette tilf\u00e6lde bruges initialiseringsdelen til at s\u00e6tte tal til 0. I den n\u00e6ste del angives k\u00f8rselsbetingelsen &#8211; som ved while og do-while er k\u00f8rselsbetingelsen tal &lt; 10. K\u00f8rselsbetingelsen evalueres inden l\u00f8kkens start &#8211; svarende til evalueringen af en k\u00f8rselsbetingelse i en while-s\u00e6tning. Den sidste del af for-l\u00f8kken angiver en kommando, der skal udf\u00f8res som det sidste i hvert genneml\u00f8b af l\u00f8kken &#8211; i dette tilf\u00e6lde er det en opt\u00e6lning af tal.<\/p>\n<p><strong>Tabeller<\/strong><\/p>\n<p>En af de ting, computere er rigtigt gode til, er at tygge sig igennem en enorm m\u00e6ngde tal og foretage den samme beregning p\u00e5 dem alle sammen. Derfor er det smart, at man kan gemme disse tal i tabeller. I programmeringssammenh\u00e6ng hedder disse tabeller arrays. Eksempel 5 viser, hvordan et array oprettes og bruges. Man laver en variabel til et array ved at s\u00e6tte den lig med new Array(). I parentesen skrives st\u00f8rrelsen p\u00e5 arrayet &#8211; det svarer til antallet af pladser i tabellen. Man tilg\u00e5r de forskellige pladser &#8211; elementer &#8211; i tabellen ved at angive pladsens position i kantede parenteser efter navnet p\u00e5 tabellen. Som det ses af eksempel 5, hedder den f\u00f8rste plads 0 og den sidste 5. Generelt har det sidste element i et array positionen en mindre en st\u00f8rrelsen p\u00e5 arrayet.<\/p>\n<p><strong>Objekt-orienteret programmering<\/strong><\/p>\n<p>Ligesom VBScript bygger JavaScript til en hvis grad p\u00e5 den objekt-orienterede tankegang. Objekt-orienteret programmering er et s\u00e6rdeles omfattende emne, men det er kun en meget begr\u00e6nset del af det, det er n\u00f8dvendigt at have kendskab til for at kunne forst\u00e5 og bruge JavaScript. Det, der er vigtigt at forst\u00e5, er, at et objekt er en samling af funktioner og variable. Alle objekter har en navn, og man skal bruge dette navn for at tilg\u00e5 objektets indhold. Hvis et objekt ved navn person har en variabel, der hedder alder, kan denne tilg\u00e5s ved at skrive person.alder.<\/p>\n<p><strong>N\u00e6ste nummer<\/strong><\/p>\n<p>Denne del af kurset skulle gerne have lagt fundamentet for programmering i JavaScript. I n\u00e6ste nummer vil det blive gennemg\u00e5et, hvordan man laver visuelle programmer i JavaScript, og hvordan man s\u00e6tter sine JavaScript-programmer ind i HTML-koden.<\/p>\n<p><strong>K\u00e6rt barn har mange navne <\/strong><\/p>\n<p>JavaScript er det navn Netscape valgte at give deres scriptsprog, da de opfandt det. Siden har European Computer Manufacturers Association (ECMA) standardiseret det og givet det navnet ECMA-script. Microsoft har valgt at implementere en del af JavaScript &#8211; og nogle enkelte nye funktioner &#8211; i Internet Explorer under navnet J-script.<\/p>\n<p><strong>Store og sm\u00e5 bogstaver <\/strong><\/p>\n<p>I mods\u00e6tning til VBScript kan JavaScript kende forskel p\u00e5 store og sm\u00e5 bogstaver. Det vil sige, at funktionen areal er forskellig fra funktionen Areal. Det samme g\u00e6lder variabler og kommandoer. Alle kommandoer &#8211; if, for, while og s\u00e5 videre &#8211; skal skrives med sm\u00e5t. Hvis man f\u00e5r en fejl om, at en given funktion ikke eksisterer, er det en god ide at starte med at kontrollere, at man har skrevet funktionsnavnet fuldst\u00e6ndigt rigtigt.<\/p>\n<p><strong>Eksempel 1: Beregning af areal i JavaScript <\/strong><\/p>\n<p>function areal (hojde, bredde)<\/p>\n<p>{<\/p>\n<p>\u00a0 return hojde * bredde;<\/p>\n<p>}<\/p>\n<p>\u00a0<\/p>\n<p><strong>Eksempel 2: V\u00e6gtkontrol <\/strong><\/p>\n<p>function vaegtKontrol (vaegt)<\/p>\n<p>{<\/p>\n<p>\u00a0 if (vaegt &gt; 200)<\/p>\n<p>\u00a0\u00a0 \u00a0besked = &#8220;Du er overv\u00e6gtig&#8221;;<\/p>\n<p>\u00a0 else<\/p>\n<p>\u00a0\u00a0\u00a0 besked = &#8220;Du er slank&#8221;;<\/p>\n<p>}<\/p>\n<p>\u00a0<\/p>\n<p><strong>EKSEMPEL 3: Bestemmelse af medaljer <\/strong><\/p>\n<p>function medalje (placering)<\/p>\n<p>{<\/p>\n<p>\u00a0 switch (placering)<\/p>\n<p>\u00a0 {<\/p>\n<p>\u00a0\u00a0\u00a0 case 1 : besked = &#8216;guld&#8217;;<\/p>\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 break;<\/p>\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/p>\n<p>\u00a0\u00a0\u00a0 case 2 : besked = &#8216;s\u00f8lv&#8217;;<\/p>\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 break;<\/p>\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/p>\n<p>\u00a0\u00a0\u00a0 case 3 : besked = &#8216;bronze&#8217;;<\/p>\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 break;<\/p>\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/p>\n<p>\u00a0\u00a0\u00a0 default : besked = &#8216;ingen medalje&#8217;;<\/p>\n<p>\u00a0 }<\/p>\n<p>\u00a0<\/p>\n<p>\u00a0 return besked;<\/p>\n<p>}<\/p>\n<p>\u00a0<\/p>\n<p><strong>EKSEMPEL 4: L\u00f8kker i JavaScript <\/strong><\/p>\n<p>function whileEksempel()<\/p>\n<p>{<\/p>\n<p>\u00a0 tal = 1;<\/p>\n<p>\u00a0 sum = 0;<\/p>\n<p>\u00a0 while (tal &lt; 10)<\/p>\n<p>\u00a0 {<\/p>\n<p>\u00a0\u00a0\u00a0 sum = sum + tal;<\/p>\n<p>\u00a0\u00a0\u00a0 tal = tal + 1;<\/p>\n<p>\u00a0 }<\/p>\n<p>\u00a0<\/p>\n<p>\u00a0 return sum;<\/p>\n<p>}<\/p>\n<p>\u00a0<\/p>\n<p>function doWhileEksempel()<\/p>\n<p>{<\/p>\n<p>\u00a0 tal = 1;<\/p>\n<p>\u00a0 sum = 0;<\/p>\n<p>\u00a0 do<\/p>\n<p>\u00a0 {<\/p>\n<p>\u00a0\u00a0\u00a0 sum = sum + tal;<\/p>\n<p>\u00a0\u00a0\u00a0 tal = tal + 1;<\/p>\n<p>\u00a0 }<\/p>\n<p>\u00a0 while (tal &lt; 10);<\/p>\n<p>\u00a0<\/p>\n<p>\u00a0 return sum;<\/p>\n<p>}<\/p>\n<p>\u00a0<\/p>\n<p>function forEksempel()<\/p>\n<p>{<\/p>\n<p>\u00a0 sum = 0;<\/p>\n<p>\u00a0 for (tal = 0; tal &lt; 10; tal++)<\/p>\n<p>\u00a0\u00a0\u00a0 sum = sum + tal;<\/p>\n<p>\u00a0\u00a0\u00a0<\/p>\n<p>\u00a0return sum;<\/p>\n<p>}<\/p>\n<p>\u00a0<\/p>\n<p><strong>EKSEMPEL 5: Arrays <\/strong><\/p>\n<p>function arrayEksempel()<\/p>\n<p>{<\/p>\n<p>\u00a0 karakterer = new Array(6);<\/p>\n<p>\u00a0 karakterer[0] = 7;<\/p>\n<p>\u00a0 karakterer[1] = 6;<\/p>\n<p>\u00a0 karakterer[2] = 11;<\/p>\n<p>\u00a0 karakterer[3] = 10;<\/p>\n<p>\u00a0 karakterer[4] = 10;<\/p>\n<p>\u00a0 karakterer[5] = 9;<\/p>\n<p>\u00a0<\/p>\n<p>\u00a0 sum = 0;<\/p>\n<p>\u00a0 for (taeller = 0; taeller &lt; 6; taeller = taeller + 1)<\/p>\n<p>\u00a0\u00a0\u00a0 sum = sum + karakterer[taeller];<\/p>\n<p>\u00a0\u00a0\u00a0<\/p>\n<p>\u00a0 return sum \/ 6;<\/p>\n<p>}<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Kristian Hansen forts\u00e6tter nu Computer PCs store Internet-kursus. Denne gang giver han en introduktion til JavaScript. Tidligere i dette kursus er det blevet beskrevet, hvordan man kan g\u00f8re sine hjemmesider mere interessante med VBScript. Denne artikel og de to n\u00e6ste i kurset vil beskrive JavaScript, der ogs\u00e5 er et scriptsprog. Java og JavaScript For at [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":30,"menu_order":0,"comment_status":"closed","ping_status":"open","template":"","meta":{"_monsterinsights_skip_tracking":false,"footnotes":""},"class_list":["post-126","page","type-page","status-publish","hentry"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/www.kristiansborg.dk\/bibliotek\/artikler\/it\/l%c3%a6r-javascript-1-grundl%c3%a6ggende-javascript\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"da_DK\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Biblioteket | Samling af artikler og b\u00f8ger\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"L\u00e6r Javascript 1: Grundl\u00e6ggende Javascript | Biblioteket\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/www.kristiansborg.dk\/bibliotek\/artikler\/it\/l%c3%a6r-javascript-1-grundl%c3%a6ggende-javascript\/\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2008-10-22T12:47:51+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2008-10-22T12:47:51+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary\" \/>\n\t\t<meta name=\"twitter:title\" content=\"L\u00e6r Javascript 1: Grundl\u00e6ggende Javascript | Biblioteket\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.kristiansborg.dk\\\/bibliotek\\\/artikler\\\/it\\\/l%c3%a6r-javascript-1-grundl%c3%a6ggende-javascript\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.kristiansborg.dk\\\/bibliotek#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.kristiansborg.dk\\\/bibliotek\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.kristiansborg.dk\\\/bibliotek\\\/artikler\\\/#listItem\",\"name\":\"Artikler\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.kristiansborg.dk\\\/bibliotek\\\/artikler\\\/#listItem\",\"position\":2,\"name\":\"Artikler\",\"item\":\"https:\\\/\\\/www.kristiansborg.dk\\\/bibliotek\\\/artikler\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.kristiansborg.dk\\\/bibliotek\\\/artikler\\\/it\\\/#listItem\",\"name\":\"IT\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.kristiansborg.dk\\\/bibliotek#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.kristiansborg.dk\\\/bibliotek\\\/artikler\\\/it\\\/#listItem\",\"position\":3,\"name\":\"IT\",\"item\":\"https:\\\/\\\/www.kristiansborg.dk\\\/bibliotek\\\/artikler\\\/it\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.kristiansborg.dk\\\/bibliotek\\\/artikler\\\/it\\\/l%c3%a6r-javascript-1-grundl%c3%a6ggende-javascript\\\/#listItem\",\"name\":\"L\\u00e6r Javascript 1: Grundl\\u00e6ggende Javascript\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.kristiansborg.dk\\\/bibliotek\\\/artikler\\\/#listItem\",\"name\":\"Artikler\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.kristiansborg.dk\\\/bibliotek\\\/artikler\\\/it\\\/l%c3%a6r-javascript-1-grundl%c3%a6ggende-javascript\\\/#listItem\",\"position\":4,\"name\":\"L\\u00e6r Javascript 1: Grundl\\u00e6ggende Javascript\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.kristiansborg.dk\\\/bibliotek\\\/artikler\\\/it\\\/#listItem\",\"name\":\"IT\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.kristiansborg.dk\\\/bibliotek\\\/#organization\",\"name\":\"Biblioteket\",\"description\":\"Samling af artikler og b\\u00f8ger\",\"url\":\"https:\\\/\\\/www.kristiansborg.dk\\\/bibliotek\\\/\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.kristiansborg.dk\\\/bibliotek\\\/artikler\\\/it\\\/l%c3%a6r-javascript-1-grundl%c3%a6ggende-javascript\\\/#webpage\",\"url\":\"https:\\\/\\\/www.kristiansborg.dk\\\/bibliotek\\\/artikler\\\/it\\\/l%c3%a6r-javascript-1-grundl%c3%a6ggende-javascript\\\/\",\"name\":\"L\\u00e6r Javascript 1: Grundl\\u00e6ggende Javascript | Biblioteket\",\"inLanguage\":\"da-DK\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.kristiansborg.dk\\\/bibliotek\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.kristiansborg.dk\\\/bibliotek\\\/artikler\\\/it\\\/l%c3%a6r-javascript-1-grundl%c3%a6ggende-javascript\\\/#breadcrumblist\"},\"datePublished\":\"2008-10-22T14:47:51+02:00\",\"dateModified\":\"2008-10-22T14:47:51+02:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.kristiansborg.dk\\\/bibliotek\\\/#website\",\"url\":\"https:\\\/\\\/www.kristiansborg.dk\\\/bibliotek\\\/\",\"name\":\"Biblioteket\",\"description\":\"Samling af artikler og b\\u00f8ger\",\"inLanguage\":\"da-DK\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.kristiansborg.dk\\\/bibliotek\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"L\u00e6r Javascript 1: Grundl\u00e6ggende Javascript | Biblioteket","description":"","canonical_url":"https:\/\/www.kristiansborg.dk\/bibliotek\/artikler\/it\/l%c3%a6r-javascript-1-grundl%c3%a6ggende-javascript\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BreadcrumbList","@id":"https:\/\/www.kristiansborg.dk\/bibliotek\/artikler\/it\/l%c3%a6r-javascript-1-grundl%c3%a6ggende-javascript\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/www.kristiansborg.dk\/bibliotek#listItem","position":1,"name":"Home","item":"https:\/\/www.kristiansborg.dk\/bibliotek","nextItem":{"@type":"ListItem","@id":"https:\/\/www.kristiansborg.dk\/bibliotek\/artikler\/#listItem","name":"Artikler"}},{"@type":"ListItem","@id":"https:\/\/www.kristiansborg.dk\/bibliotek\/artikler\/#listItem","position":2,"name":"Artikler","item":"https:\/\/www.kristiansborg.dk\/bibliotek\/artikler\/","nextItem":{"@type":"ListItem","@id":"https:\/\/www.kristiansborg.dk\/bibliotek\/artikler\/it\/#listItem","name":"IT"},"previousItem":{"@type":"ListItem","@id":"https:\/\/www.kristiansborg.dk\/bibliotek#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/www.kristiansborg.dk\/bibliotek\/artikler\/it\/#listItem","position":3,"name":"IT","item":"https:\/\/www.kristiansborg.dk\/bibliotek\/artikler\/it\/","nextItem":{"@type":"ListItem","@id":"https:\/\/www.kristiansborg.dk\/bibliotek\/artikler\/it\/l%c3%a6r-javascript-1-grundl%c3%a6ggende-javascript\/#listItem","name":"L\u00e6r Javascript 1: Grundl\u00e6ggende Javascript"},"previousItem":{"@type":"ListItem","@id":"https:\/\/www.kristiansborg.dk\/bibliotek\/artikler\/#listItem","name":"Artikler"}},{"@type":"ListItem","@id":"https:\/\/www.kristiansborg.dk\/bibliotek\/artikler\/it\/l%c3%a6r-javascript-1-grundl%c3%a6ggende-javascript\/#listItem","position":4,"name":"L\u00e6r Javascript 1: Grundl\u00e6ggende Javascript","previousItem":{"@type":"ListItem","@id":"https:\/\/www.kristiansborg.dk\/bibliotek\/artikler\/it\/#listItem","name":"IT"}}]},{"@type":"Organization","@id":"https:\/\/www.kristiansborg.dk\/bibliotek\/#organization","name":"Biblioteket","description":"Samling af artikler og b\u00f8ger","url":"https:\/\/www.kristiansborg.dk\/bibliotek\/"},{"@type":"WebPage","@id":"https:\/\/www.kristiansborg.dk\/bibliotek\/artikler\/it\/l%c3%a6r-javascript-1-grundl%c3%a6ggende-javascript\/#webpage","url":"https:\/\/www.kristiansborg.dk\/bibliotek\/artikler\/it\/l%c3%a6r-javascript-1-grundl%c3%a6ggende-javascript\/","name":"L\u00e6r Javascript 1: Grundl\u00e6ggende Javascript | Biblioteket","inLanguage":"da-DK","isPartOf":{"@id":"https:\/\/www.kristiansborg.dk\/bibliotek\/#website"},"breadcrumb":{"@id":"https:\/\/www.kristiansborg.dk\/bibliotek\/artikler\/it\/l%c3%a6r-javascript-1-grundl%c3%a6ggende-javascript\/#breadcrumblist"},"datePublished":"2008-10-22T14:47:51+02:00","dateModified":"2008-10-22T14:47:51+02:00"},{"@type":"WebSite","@id":"https:\/\/www.kristiansborg.dk\/bibliotek\/#website","url":"https:\/\/www.kristiansborg.dk\/bibliotek\/","name":"Biblioteket","description":"Samling af artikler og b\u00f8ger","inLanguage":"da-DK","publisher":{"@id":"https:\/\/www.kristiansborg.dk\/bibliotek\/#organization"}}]},"og:locale":"da_DK","og:site_name":"Biblioteket | Samling af artikler og b\u00f8ger","og:type":"article","og:title":"L\u00e6r Javascript 1: Grundl\u00e6ggende Javascript | Biblioteket","og:url":"https:\/\/www.kristiansborg.dk\/bibliotek\/artikler\/it\/l%c3%a6r-javascript-1-grundl%c3%a6ggende-javascript\/","article:published_time":"2008-10-22T12:47:51+00:00","article:modified_time":"2008-10-22T12:47:51+00:00","twitter:card":"summary","twitter:title":"L\u00e6r Javascript 1: Grundl\u00e6ggende Javascript | Biblioteket"},"aioseo_meta_data":{"post_id":"126","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"location":null,"local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":null,"created":"2020-12-21 06:59:27","updated":"2025-06-04 00:54:23","seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.kristiansborg.dk\/bibliotek\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.kristiansborg.dk\/bibliotek\/artikler\/\" title=\"Artikler\">Artikler<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.kristiansborg.dk\/bibliotek\/artikler\/it\/\" title=\"IT\">IT<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tL\u00e6r Javascript 1: Grundl\u00e6ggende Javascript\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/www.kristiansborg.dk\/bibliotek"},{"label":"Artikler","link":"https:\/\/www.kristiansborg.dk\/bibliotek\/artikler\/"},{"label":"IT","link":"https:\/\/www.kristiansborg.dk\/bibliotek\/artikler\/it\/"},{"label":"L\u00e6r Javascript 1: Grundl\u00e6ggende Javascript","link":"https:\/\/www.kristiansborg.dk\/bibliotek\/artikler\/it\/l%c3%a6r-javascript-1-grundl%c3%a6ggende-javascript\/"}],"_links":{"self":[{"href":"https:\/\/www.kristiansborg.dk\/bibliotek\/wp-json\/wp\/v2\/pages\/126","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.kristiansborg.dk\/bibliotek\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.kristiansborg.dk\/bibliotek\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.kristiansborg.dk\/bibliotek\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.kristiansborg.dk\/bibliotek\/wp-json\/wp\/v2\/comments?post=126"}],"version-history":[{"count":0,"href":"https:\/\/www.kristiansborg.dk\/bibliotek\/wp-json\/wp\/v2\/pages\/126\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/www.kristiansborg.dk\/bibliotek\/wp-json\/wp\/v2\/pages\/30"}],"wp:attachment":[{"href":"https:\/\/www.kristiansborg.dk\/bibliotek\/wp-json\/wp\/v2\/media?parent=126"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}