Vad står JSON för?
JavaScript Object Notation
JavaScript Object Names
JavaScript Obscure Nests
Javascript Obscure Notation
Vad är syftet med JSON?
Att göra det möjligt att transformera en variabel till ett objekt och viceversa
Att göra det möjligt att transformera ett värde till en sträng och viceversa
Att göra det möjligt att transformera ett värde till en variabel och viceversa
Att göra det möjligt att transformera en data struktur till en variabel och viceversa
Att göra det möjligt att transformera en data struktur till ett objekt och viceversa
Att göra det möjligt att transformera en bit kod till en sträng och viceversa
Är strängen nedan (string) en valid JSON-sträng? (dvs, kommer JSON.parse att fungera på denna sträng och returnera ett värde?). Testa gärna med kod! Const string = "null"
Ja
Nej
Det beror på
Vad kommer det att loggas på consolen? Const s = JSON.stringify({key: "value"}); console.log(JSON.parse(s).key);
Inget. Det finns en syntax error.
Key
Key: value
Value
En tom sträng
Vilket värde kommer variabeln v att ha? Let v = JSON.parse(JSON.stringify({k: 2})).k;
Objektet JSON
"string"
"k" = "2"
2
"k"
NaN
Kan en webbresurs vara något annat än text?
Nej. En webbresurs är alltid text.
Ja, datan kan vara I många andra format.
Nej. En webbresurs måste alltid vara text, specifikt I det språket som anges I .
Vad står URL för?
Uniform Resource Locator
Unique Resource Location
Unique Resource Locator
Vad är en URL?
En webbplats
En webbsida
En webbadress
Vad ska man ha webbresurser till?
De är webbens byggstenar. Allting som finns tillgänglig på webben är en webbresurs.
Till att komma åt bilder och videos. Andra filer (som HTML) kallas inte webbresurser.
De används inte så mycket. Bara ibland om man behöver komma åt en databas.
Till att hjälpa till med JS. De innehåller data om programmering.
Vad innehåller följande webbresurs? (Kolla gärna innan du svarar). https://www.maumt.se/dbp/dbp22/chunks_material/klient_server/T1_users/?id=1
En array, I JSON format
En siffra, I JSON format
En webbsida, I JSON format
Ett objekt, I JSON format
Webbresursen är en array som innehåller endast ett element. Vilken datatyp har elementet? https://api.dictionaryapi.dev/api/v2/entries/en/university
En sträng
En array
Ett objekt
En boolean
Webbresursen nedan är samma som I förra frågan. Det enda elementet I arrayen är ett objekt, som vi såg I förra frågan. Bland objektets olika nycklar finns det en som heter "antonyms". Vilken datatyp har nyckelns värde? https://api.dictionaryapi.dev/api/v2/entries/en/university
En siffra
En boolean
Ett objekt
En array
Hur många element innehåller webbresursen nedan (det är en array)? https://api.openbrewerydb.org/breweries/search?query=dog
0
Det är inte en array
Fler än vad browsern kan visa
Inget av svaren ovan är korrekt
Vilka två saker gör webbläsaren när vi anropar funktionen fetch?
1) Väcker Servern 2) Skapar och returnerar ett löfte (Promise)
1) Skickar iväg en förfrågan 2) Skapar och returnerar ett löfte (Promise)
1) Skickar iväg en förfrågan 2) Returnernar "Pending"
1) Väcker Servern 2) Returnernar "Pending"
Vad är ett löfte (promise) I JS?
En funktion
En array
Det beror på webbresursen vi vill fetcha
Ett objekt
Vad används löftet som fetch-skapar till?
Det låter oss veta när responsen från servern har kommit fram till webbläsaren
Det initierar kommunikationen med servern
Det innehåller webbresursen vi fetchade
Det ser till att förfrågan kommer fram till servern
Hur lång tid tar det mellan det att fetch anropas (och förfrågan skickas iväg) och det att responsen kommer fram till webbläsaren?
Ingen tid alls. Det sker omedelbart.
Det beror på vår dators hastighet
Det beror på läget på internet och serverns hastighet.
Det beror på vilken version av webbläsaren vi har installerat
Studera koden nedan (men kör inte den). Vad kommer att loggas och I vilken ordning?
function B () { console.log("B"); }
function K () { console.log("K"); }
console.log("H");
const rqst = new Request( URL till slow_number.php );
let prms = fetch(rqst);
prms.then(B);
console.log("E");
fun
console.log("H");
const rqst = new Request( URL till slow_number.php );
let prms = fetch(rqst);
prms.then(B);
console.log("E");
1) H 2) E 3) B
1) B 2) K 3) H 4) B 5) E
1) B 2) H 3) E
1) B 2) K 3) H 4) E
Studera koden nedan (men kör inte den). Vad kommer att loggas och I vilken ordning?
const rqst = new Request( URL till slow_number.php );
let prms = fetch(rqst);
console.log("H");
prms.then(B);
console.log("E");
function B () { console.log("B"); }
function K () { console.log("K"); }
1) H 2) B 3) E 4) B 5) K
1) B 2) K 3) H
1) H 2) E 3) B
Inget. Det blir syntax error.
Vad returnerar funktionen fetch?
En förfrågan
Ett löfte
En metod
En sträng
Utöver att returnera ett löfte (promise), vad annat gör funktionen fetch?
Hämtar en webbresurs
Skickar iväg en förfrågan
Stoppar exekveringen av koden
Skapar en förfrågan
Fetch returnerar ett löfte. Det är ett löfte om vad?
En response från servern
En response från webbläsaren
En webbresurs från servern
Ett annat löfte
När uppfylls löftet som fetch returnerar?
När servern skickar responsen
När servern skickar webbresursen
När klienten tar emot webbresursen
När klienten tar emot responsen
Vad händer när response-löftet (som fetch returnerar) uppfylls?
Funktionen direkt efter fetch anropas
Funktionen fetch anropas
Funktionen som agivits I löftets then()-metod anropas
Löftets then()-metoden anropas
När response-löftet uppfylls så anropas funktionen som vi har angett I löftets then()-metod. Funktionen anropas med ett argument, vilket?
Responsen
Webbresursen
Förfrågan
En ny then()-metod
Hur kan vi från JS-koden nå responsen som servern skickar som svar på vår förfrågan?
Funktionen fetch returnerar responsen från servern
Funktionen som vi har angett I response-löftets then()-metod anropas med responsen som argument.
Response-löftets then()-metod returnerar responsen
Responsen nås via det JS-inbyggda objektet network
Vad är responsen?
En metod
En array
Det beror på
Ett objekt
Response är ett objekt med ett flertal nycklar och metoder. Det skickas av servern till oss som svar på en begäran. Vilken av responsens nycklar innehåller information angående huruvida servern kunde hantera vår begäran?
Valid
Request
Ok
Enabled
Response-objektet inkluderar bland andra metoden json(). Vad returnerar denna metod?
En respons
Ett löfte
Adressen till en server
En funktion
Löftet som returneras av responsens json()-metod är ett löte om:
En server
En respons
En funktion
En webbresurs
När uppfylls löftet om webbresursen?
När alla datapaket har kommit till klienten
När servern skickar en respons
Direkt efter det att förfrågan skickades
När klienten tar emot en respons
Om
response_promise
är löftet som fetch
returnerar och webbresursen vi har frågat om är ett JSON-objekt... Vad returnerar metod-anropet nedan?response_promise.then(response => response.json())
Ett löfte om en response
Null
Ett löfte om en webbresurs
Undefined
Vi vet att webbresursen vi frågade servern efter har kommit fram när löftet om webbresursen uppfylls. Vad händer då?
Funktionen webbResource() anropas
Fetch returnerar true
Funktionen direkt efter fetch anropas
Inget av ovan
Säg att webbresursen vi frågade efter var ett JSON-objekt. När webbresursen har kommit till klienten anropas funktionen som vi angav I metoden
Säg att funktionen som vi angav där, och som anropas, hade namnet
then()
av löftet som returnerades av:response_promise.then(response => response.json())
Säg att funktionen som vi angav där, och som anropas, hade namnet
F1
. Hur når vi webbresrusen I vår JS-kod?Den skickas som argument till F1() när den anropas
Den kommer automatiskt att placeras I en särskild variabel: resourceVariable
Den returneras av F1() när den anropas
Vi kan inte nå den
Hur kan vi veta om en webbresurs är en sträng eller ett JSON-objekt?
Genom att kolla på respons-objektet: Om den har metoden json() så är webbresursen ett JSON-objekt.
Genom att kolla på variablen responseType. Om den har värdet "json" så är det ett JSON-objekt
Genom att hämta webbresursen (URL I adressfältet) med webbläsaren och studera webbresursen.
Genom att kolla på resursens namn
Studera denna webbresurs:
Vad är det för typ av webbresurs?
https://maumt.se/dbp/dbp22/chunks_material/resources/greetings.php
Vad är det för typ av webbresurs?
En text
En array
Ett objekt
Studera denna webbresurs:
Det är ett JSON-objekt med tre nycklar. Vilka?
https://maumt.se/dbp/dbp22/chunks_material/resources/moneis.php
Det är ett JSON-objekt med tre nycklar. Vilka?
Europe, japan, sweden
Dollar, Euro, SEK
Yen, Ying, Yang
Euro, SEK, Yen
När vill man skicka data från klienten till servern?
Det beror på, men ganska ofta.
Aldrig, servern tar inte emot data, bara skickar det.
När internet strular.
När skickas datan till servern?
Efter förfrågan
Före förfrågan
Samtidigt som förfrågan, det är en del av förfrågan
Vad är den stora skillnaden mellan GET-förfrågningar och alla andra förfrågningar?
Att GET-förfrågningar går mycket snabbare
Att I en GET-förfrågan måste all data som ska till servern skrivas I URL:en
Det finns inga stora skillnader mellan GET-förfrågningar och alla andra förfrågningar
Vilket tecken (character) används för att markera första GET-parameter-namnet?
Ett mellanslag
Ett uppropstecken
Ett frågetecken
Hur många GET-parametrar kan vi skicka I samma förfrågan?
Två.
Tre.
Det beror på. Begränsningen sätts av antalet tecken som ett URL kan ha
Det beror på. Begränsningen sätts av kvaliteten på vår internet uppkoppling.
www.exempel.com/test.php?a=b&b=c&c=d
Hur många GET-parametrar finns det I denna URL?
Ingen
En
Två
Tre
www.exempel.com/test.php?a=b&b=c&c=d
Vilket värde har GET-parametern d?
Det finns ingen GET-parameter med namnet d.
A
B
C
www.exempel.com/&p1=a&p2=b&p3=c
Vilket värde har GET-parametern p1?
Den skickas utan värde
Detta är inte en giltig URL
A
B
C
Kan man från webbläsaren skicka data till servern?
Nej. Klienten bara tar emot data från servern.
Ja, det är inte ovanligt
Ja, men bara med GET-förfrågningar
Teoretiskt går det men det är aldrig intressant.
Hur skickas data från webbläsaren till servern?
Data skickas efter responsen
Data skickas efter förfrågan
Data skickas som en del av förfrågan
Data skickas som en del av responsen
Ad har POST-, PATCH- och DELETE-förfrågningar gemensamt?
De kan alla inkludera en "body" med data till servern
De använder samma sorts metod
Ingen av dem levererar en respons
Alla skickar samma respons
Hur vet man vilken data servern tar emot?
Alla API:er tar alltid emot samma data
Man får testa sig fram
Det står på APIs dokumentation
Vad står API för?
Application Programming Interface
Apparently Potential Interaction
Application Perfect Interaction
Autonomous Programme International
Vad är ett API?
En samling regler
Ett dokument
Ett gäng sätt att interagera med en bit kod
Vem bestämmer hur ett API ska designas?
Kodarna som har tagit fram applikationen bakom API:et
Ett internationellt konsortium
Kodarna bakom klient-applikationen
Ingen. Alla APIs har samma struktur
Hur många POST-förfrågningar kan man skicka till en server?
Bara en per session
Bara en per databas
Så många som man vill
När man hämtar tre resurser "i serie" så...
Får man tillbaka den första snabbt och de andra två samtidigt.
Det går snabbare än om man hämtar samma tre resurser parallellt
Det två första kommer in samtidigt och den sista efter ett tag
Inget av alternativen är korrekt
När man hämtar resurser I serie så måste man vänta på att varje resurs har kommit in innan man "fetchar" nästa.
Påståendet stämmer alltid
Påståendet stämmer ibland
Påståendet stämmer aldrig
Vad är fördelen med att hämta resurser I serie?
Att det går snabbare än parallellt
Att vi har tillgång till resurser vi får in när vi hämtar nya
Att webbläsaren inte hänger sig
Det finns ingen fördel med att hämta resurser I serie
Vad betyder det att hämta resurser parallellt?
Att alla begäranden (requests) skickas samtidigt
Att alla kommer in samtidigt
Att alla begäranden (requests) skickas en och en
Det är det enda sättet att få en resurs för varje begäran man skickar ut
Vad är fördelen med att skicka requests parallellt?
Att det brukar ta kortare tid att få resurserna än om man skickar de I serie
Att man skriver betydligt mindre kod
Det bara är bättre alla gånger
Att resurserna kommer in samtidigt
Hur många requests måste vi skicka för att vi ska kunna skicka dem I serie eller parallellt?
För "serie" minst tre, för "parallellt" minst två
Minst två
Minst en
För "serie" minst två, för "parallellt" minst tre
const r1 = new Request(URL1);
const r2 = new Request(URL2);
fetch(r1).then(r=>r.json()).then(do_something);
fetch(r2).then(r=>r.json()).then(do_something);
Skickas begäranden ovan I serie eller parallellt?
Det beror på vad funktionen do_something gör
Parallellt
Det beror på vad resurserna är
I serie
const URL1 = "https://teaching.maumt.se/apis/random_number/";
const URL2 = "https://teaching.maumt.se/apis/random_color/";
const r1 = new Request(URL1);
const r2 = new Request(URL1);
fetch(r1).then(r=>r.json()).then(console.log);
fetch(r1).then(r=>r.json()).then(console.log);
Kommer denna kod att kunna köras?
Ja, det ser fint ut
Nej, eftersom r2 har samma URL som r1
Nej, eftersom vi fetchar r1 två gånger
Nej, det finns ett syntax error I varje fetch-rad
Vad är async och await bra för?
Webbläsaren går snabbare när man använder dem istället för vanlig fetch.
Kommunikationen med servern går snabbare när man använder dem istället för vanlig fetch.
Koden blir mer lättläst.
Inget av svaren ovan är korrekt.
När man I koden skriver:
Vad måste X vara?
const a = await X;
Vad måste X vara?
En array.
Ett löfte.
En URL.
Ett returvärde.
const a = await X;
Kodraden ovan kan endast skrivas...
Inuti en funktion som returnerar ett löfte.
Inuti en async-funktion.
I det globala "spacet."
Inuti en funktion som tar emot en request.
const a = await X;
Kodraden ovan måste finnas inuti en async funktion för att fungera. Vad händer när kodraden ovan körs?
Värdet av löftet X sparas I konstanten a när löftet uppfylls.
Värdet av löftet X uppfylls omedelbart och sparas I konstanten a.
Löftet X sparas omedelbart I konstanten a.
Löftet X skickas till servern.
Dessa rader finns I en async-funktion och den anropas. Vad kommer att loggas på consolen?
const request = new Request(`https://teaching.maumt.se/apis/random_number/`);
console.log((await fetch(request)));
Ett löfte-objekt (promise).
Ett response-objekt.
En resurs (i detta fall en random siffra).
Ett request-objekt.
Dessa rader finns I en async-funktion och den anropas. Vad kommer att loggas på consolen (ordningen är viktig!)?
const request = new Request(`https://teaching.maumt.se/apis/random_number/`);
console.log(await (await fetch(request)).json());
console.log("hej");
Ett response-objekt och sen "hej".
"hej" och sen en random siffra.
En random siffra och sen "hej".
Inget av ovan
I flera av övningarna har vi använt oss av resursen:
Vad är t_min?
https://teaching.maumt.se/apis/random_number/?min=1&max=29&t_min=3&t_len=2
Vad är t_min?
Resursens returvärde
En del av POST-body
En request-funktion
En GET-parameter
Vad används async-funktioner till?
Vi kan skriva await I dem.
Till att komma åt webbresurser snabbare.
Vi kan köra fler fetch() I dem än utanför dem.
Något mer avancerat än vad vi lär oss I denna kurs
Vad är skillanden mellan deklarationen av en vanlig funktion och en async-funktion?
Parametrarna I async-funktionen skrivs utanför parenteserna
Endast det reserverade ordet async före function
Async-funktioner kan inte returnera något värde
Async-funktioner kan inte ta emot paramtetrar
Kan man deklarera en async-funktion som en arrow funktion? (testa gärna, jag har inte pratat om detta I videorna)
Endast om funktionen inte tar emot parametrar.
Endast om funktionen inte returnerar något.
Endast om await inte förekommer I funktionen.
Ja, alltid.
Kan en async-funktion deklareras inuti en annan async funktion? (testa gärna, jag har inte pratat om detta I videorna)
Ja, varför inte?
Nej, aldrig
Endast om ingen av funktionerna returnerar något.
Endast om funktionen "innanför" inte returnerar något.
Vad returnerar en async-funktion?
Alltid ett löfte.
Alltid en response.
Ett löfte, en respons eller en resurs, det beror på hur den är kodad.
Alltid en resurs.
Vad kommer att loggas på consolen?
async function f1 () {
const response = await fetch("https://teaching.maumt.se/apis/random_number/");
return response.json();
}
console.log(f1());
Ett response-objekt.
En siffra (random).
Ett uppfylld (fulfilled) löfte-objekt.
Ett oupppfylld (pending) löfte-objekt.
Vad kommer att loggas på consolen?
async function f1 () {
const response = await fetch("https://teaching.maumt.se/apis/random_number/");
return await response.json();
}
console.log(f1);
En siffra (random).
Ett response-objekt.
Ett funktions-objekt.
Undefined
Kommer vår begäran alltid fram till servern om URL:et är korrekt skrivet?
Inte nödvändigtvis.
Alltid.
Det beror på vilken webbläsare vi använder.
Vad händer om vi skriver ett feltaktigt URL I begäran?
Begäran skickas inte och vi får ett NetwokrError.
Begäran skickas, kommer inte fram och programmet avslutas.
Begäran skickas, kommer inte fram och webbläsaren kastar ett Network error.
Begäran skickas, kommer inte fram och servern kastar en response med relevant status-kod
Om begäran kommer fram till servern, får vi då en respons oavsett om begäran var korrekt?
Nej, vi får endast en respons om begäran var korrekt.
Ja, vi får alltid en response.
Det beror på hur servern (resursen) är programmerad.
Nej, vi får ingen respons eftersom begäran inte kommer fram till servern.
Om begäran kommer fram till servern, får vi alltid en resurs oavsett om begäran var korrekt?
Ja, och den innehåller alltid intressant information.
Nej, vi får aldrig en resurs om begäran var felaktig.
Vanligtvis, men den är sällan intressant.
{"name":"Vad står JSON för?", "url":"https://www.quiz-maker.com/QPREVIEW","txt":"Vad står JSON för?, Vad är syftet med JSON?, Är strängen nedan (string) en valid JSON-sträng? (dvs, kommer JSON.parse att fungera på denna sträng och returnera ett värde?). Testa gärna med kod! const string = \"null\"","img":"https://www.quiz-maker.com/3012/images/ogquiz.png"}
More Quizzes
Quiz Ayee
740
Evaluasi Akhir
28140
Which song best describes you
10511
Dev
100
Discover Your True Masculinity - Take the Free
201032144
Think You Know Ibiki Morino? Prove Your Naruto Skills
201039832
Free Beer Knowledge Trivia
201023832
Free Active and Passive Voice - Test Your Skills!
201037386
Ultimate Stephen King Trivia: Do You Know IT?
201026972
Ace Your P and C Insurance Practice Test - Free
201051163
Building Blocks of DNA: Master Biology Chapters 2 & 3
201029286
Statistics
15821047