I denne opgave skal du lære at bruge node.js til at køre JavaScript-kode. Gør følgende:
console.log("Hej, verden!");node app.js eller tilsvarende (brug det rigtige filnavn). Husk at stå det rigtige sted. Brug “tab”-knappen til at auto-complete filnavnet 🙂Nu kan du køre kode med node.js.
En af fordelene ved at køre kode i terminalen er, at man nemt kan afbryde programmet igen med “ctrl + c” hvis programmet ikke selv stopper. Det kan være nyttigt hvis man kommer til at lave “uendelige loops”.
Lav følgende loops i “app.js” (eller anden js-fil) og kør dem med node.js for at se om de gør det rigtige.
Her er et eksempel på hvordan man kan bruge et “dobbelt for loop” til at printe en tabel af *:
// Filnavn: app.js
for (let i = 0; i < 10; i++) {
let output = "";
for (let j = 0; j < 10; j++) {
output = output + "*";
}
console.log(output);
}
Outputtet i terminalen er:
$ node app.js
**********
**********
**********
**********
**********
**********
**********
**********
**********
**********
Læs koden og og forstå hvordan den virker. Lav nogle nye udgaver af programmet der hver printer en af følgende billeder:
**********
*********
********
*******
******
*****
****
***
**
*
*
**
***
****
*****
******
*******
********
*********
*
**
***
****
*****
******
*******
********
*********
Lav en ny tom fil og kald den input.js. Kopier følgende kode og sæt det ind i filen:
let tekst = process.argv[2]; // Input til programmet
console.log(tekst); // Printer input
Det ser lidt kryptisk ud i første linje, men det henter simpelthen det input man har kørt programmet med og printer det ud igen. Prøv at køre programmet med denne kommando fra terminalen:
node input.js hejsa
Hvad får du som output? Hvad hvis du kalder programmet uden input? Hvad hvis du tilføjer flere inputs på én gang?
Når du har en variabel med tekst (dvs. en “string”), så er der en række indbyggede funktioner der kan give dig mere information om teksten. Se eksemplet herunder.
let tekst = "Hej med dig";
console.log(tekst.length);
console.log(tekst.substring(4, 7));
console.log(tekst.substring(8, 11));
console.log(tekst.includes("med"));
console.log(tekst.includes("banankage"));
console.log(tekst.replace("dig", "banankage"));
console.log(tekst.replaceAll("e", "ø"));
Hvad gør hvert enkel linje? Lav en fil og kør koden med node.js for at blive klogere på hvad den gør. Drøft resultatet med din studiegruppe. Skriv en kort sætning ned til hver linje hvor du beskriver, hvad den gør.
Med udgangspunkt i dagens præsentation, skriv noget kode der bygger på en “if-sætning”. Koden skal laves sådan her:
alder og som indeholder en alder (fx 5).I denne opgave skal du skriv et program der læser et stykke tekst som er givet ved input. Programmet skal herefter gøre følgende:
Hvis du gerne vil bruge mellemrum i dit input til programmet, kan du bruge citationstegn. Eksempel:
node app.js "Her er en inputtekst med nogle mellemrum i"
Lav følgende programmer:
Du skal også lige prøve at lave et par programmer med to tal-input. Brug følgende skabelon:
// parseInt har til formål at lave en tekst om til et heltal
let tal1 = parseInt(process.argv[2]); // Input tal 1
let tal2 = parseInt(process.argv[3]); // Input tal 2
console.log(tal1, tal2); // Udskriver begge input-tal
Lav følgende programmer:
node app.js 0 5 outputtet 0 5 10 15 20.Færdiggør dette lille terningespil. Start med at køre koden ved at sætte det ind i en ny js-fil og kør den med node. Det forventes ikke at du forstår hver linje kode på nuværende tidspunkt. Accepter blot at der er nogle ting som vi først kan forstå senere 🙂
Nu skal du færdiggøre den del af koden hvor der står TODO.
// Noget JavaScript der gør det muligt at læse fra terminalen når der skrives.
const readline = require('readline').createInterface({
input: process.stdin,
output: process.stdout
})
// Noget JavaScript der læser et svar på et spørgsmål fra terminalen.
readline.question(`Hvad bliver næste terningekast? `, function(gæt) {
console.log(`Du gætter på ${gæt}!`);
// Kast terning:
let terning = Math.floor(Math.random() * 6 + 1);
console.log(`Der blev kastet ${terning}!`);
// TODO: Udskriv om spilleren gættede rigtigt eller forkert!
readline.close();
})
Prøv at lave et terningespil, hvor to får lov til at gætte, og den der kommer tættest på, har vundet! Og hvis de er lige tætte, er det uafgjort.
Variant: Lav om på terningen, så den har mere end seks sider.