Diskuze: JavaScript - zložitejšie funkcie - príklady 14
V předchozím kvízu, Online test znalostí JavaScript, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 13 zpráv z 13.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
V předchozím kvízu, Online test znalostí JavaScript, jsme si ověřili nabyté zkušenosti z kurzu.
function ask(name) {return prompt("Koľko kusov "+names[name]+" potrebujete?");}
var names = {tuzky: 'tuzky', pera: 'pera', gumy:'gumy'};
var sklad = {tuzky: 11, pera: 23, gumy:30}
var need = {tuzky: 0, pera: 0, gumy:0}
type = 'tuzky'; need[type] = ask(type);
type = 'pera'; need[type] = ask(type);
type = 'gumy'; need[type] = ask(type);
U programovani je dobre, abys mel co nejvic kodu podobneho. Zvysuje to prehlednost a moznost komprimace zipem, treba.. Pripadne, abys to psal spolecne, mel funkci, ktera vyresi objednavku jedne kategorie zbozi.
Nebo, myslis, jako, kdyz z prompt dostanes cislo spatne (text), co s tim?
Pomoci replace z toho odstranis vsechny znaky, ktere nejsou cislo. A pak tam
zustane cislo nebo prazdny retezec. Takze pradno je spatne a nula mozna je take
spatne? Pozor, melo by to vracet string, takze je treba to prevest jeste na
cislo
value = prompt("Koľko kusov potrebujete?");
value = value.replace(/\D+/g, '');
value = value * 1; // nebo value.toInt() nebo neco takoveho
if (value == '' || value == '0') alert('chybna objednavka')
No mal som na mysli, že keď užívateľ zadá do prompt enter, malo by to vyhodiť chybnú hlášku. Ale, ako pozerám, ten replace, mi asi postačí.
Prompt je velmi stara funkce, ktera se vicemene uz moc nepouziva. Treba jen jako potvrzeni nejake udalosti (smazani zaskrtnutych souboru, treba). Pokud to neni v zadani, ze mas pouzit prompt (coz ti asi priklad zjednodusi), tak bych si vyrobil normalni html formular.
console.log je taky velmi stara funkce, spatny argument .. prompt je naprosto
v pohode 
funkce
function porovnajMnožstvoTovaru(kancelarskePotreby){
return kancelarskePotreby;
}
a
function compareTheAmountOfGoods(officeItem){
return officeItem;
}
nedavaji zadny smysl protoze jenom vrati argument tak jak byl zadan, k cemu
ho pak davat do funkce kdyz ho muzu proste rovnou napsat? Jako treba fuknce
"vratCislo"
vratCislo(5) .. vrati 5 .. to muzu proste rovnou napsat 5
kdybych neco takoveho mel programovat .. pro zabavu .. sel bych asi podobnou cestou -> funkce maji byc co nejvic obecne a co nejmene konkretni ...
tady si to muzes vyzkouset -> Repl.it
const goods = [{
name: "Pens",
stock: 0,
needed: 0,
},
{
name: "Papers",
stock: 0,
needed: 0,
}]
/**
* Vrati objekt dle jmena
*/
function getStuff(name) {
return goods.find(g => g.name === name)
}
/**
* Nastavi dle jmena polozku 'needed'
*/
function setNeeded(name) {
const stuff = getStuff(name)
if(stuff) {
stuff.needed = prompt(`How many ${name} do you need?`);
}
}
setNeeded("Pens")
setNeeded("Papers")
console.dir(goods)
Kdybys pouzil Typescript, dalo by se to cele nadefinovat tak ze by ti IDE
pomahalo a "vedelo" by jake jsou validni nazvy .. napr. "Pens" .. "Papers" a
cokoli jineho by byla chyba zadat - to je velmi sikovne 
aaahaaa .. ty sis pojmenoval ty funkce asi proto aby jsi v kodu videl co to
ma delat ze? 
function zistiDopyt(potreby, kancelarskePredmetyNaSklade, kancelarskePredmety){
let mnozstvoTovaru = porovnajMnožstvoTovaru(potreby);
to jsem nikdy nevidel, je to zajimava myslenka ale v podstate je to spatne - mel by sis rovnou ten argument funkce pojmenovat tak aby ti daval smysl.
Pokud jde o ten prompt je to v pohode jestli si trenujes JS nebo tak .. jestli je to kod nekam do realne aplikace tak bych pouzil formular jak rikal Peter Mlich.
Takze, po noha a mnoha prispevcich jsi dospel k temuz, ze prompt se bezne pro tento pripad prilis nehodi. Spis zjednodusuje skolni priklady.
Taky jsem chtel ten puvodni komentar smazat ale vypada to ze to tady
nejde.
Ja puvodne predpokladal ze je to nejake cviceni JS podle toho jak ten kod vypada

ale jestli to chce nekde realne pouzivat tak to je jina ..
kazdopadne ma v title napsano "príklady 14" a pokud jde o cviceni, je prompt
naprosto v pohode 
Koukni treba na javascript.info - asi nejlepsi vyukovy material o JS na svete,
ten taky vsude pouziva prompt,
protoze na obyc testovani algoritmu je to rychle a prakticke.
Zobrazeno 13 zpráv z 13.