- Samsung Galaxy Z Fold7 - ezt vártuk, de…
- Yettel topik
- Huawei Watch Fit 5 Pro - jó forma
- Android alkalmazások - szoftver kibeszélő topik
- Huawei Watch Fit 3 - zöldalma
- Honor Magic8 Pro - bevált recept kölcsönvett hozzávalókkal
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- Macrodroid
- Milyen okostelefont vegyek?
- Fotók, videók mobillal
-
Fórumok
Mobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokPROHARDVER! - hardver fórumok
Notebookok TV & Audió Digitális fényképezés Alaplapok, chipsetek, memóriák Processzorok, tuning Hűtés, házak, tápok, modding Videokártyák Monitorok Adattárolás Multimédia, életmód, 3D nyomtatás Tabletek, E-bookok Nyomtatók, szkennerek PC, mini PC, barebone, szerver Beviteli eszközök Egyéb hardverek PROHARDVER! BlogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokLOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendFÁRADT GŐZ - közösségi tér szinte bármiről
Tudomány, oktatás Sport, életmód, utazás, egészség Kultúra, művészet, média Gazdaság, jog Technika, hobbi, otthon Társadalom, közélet Egyéb Lokál PROHARDVER! interaktív
-
Frissítve: 2014-02-25 10:20 Téma összefoglaló
JavaScript != Java (A JavaScript nem összekeverendő a Javával, két különböző programozási nyelvről van szó!)
Új hozzászólás Aktív témák
-
nevemfel
senior tag
-
nevemfel
senior tag
Egy kicsit körbejártam ezt, és elismerem, igazad van.


Ezek szerint JS-ben elméletileg NINCS is tömb, a tömb is objektum, DE az objektumok a gyakorlatban tömb ÉS objektum SZINTAXISSAL is kezelhetők. Viszont akkor félrevezető, hogy tömb szintaxissal létrehozott objektumokat tömbnek "hazudja" a Console ...Megerősítésképpen:
Tanulságos ..., nyilván van gyakorlati előnye, de szigorúan nézve számomra ez inkább zavaró. Az ember azt hiszi, hogy tömbje van, pedig nem is ...I. Objektumok.
Javascriptben egy objektum mezőit kétféle szintaxissal lehet elérni.
1. dot notation:
obj.property2. bracket notation:
obj["property"]A bracket notation akkor szükséges, ha olyan propertyt akarsz kezelni, ami
1. változóban van eltárolva,
2. javascriptben nem minősül megengedett azonosítónak (identifier). Például számjeggyel kezdődik, mint tömbelemek esetében, vagy space-t tartalmaz.Erre találták ki a bracket notationt, ami stringet vár, nem azonosítót. Ha nem stringet kap, akkor a kapott értéket stringgé konvertálja.
II. Tömbök.
Javascriptben létezik egy ún. array literal:
var cars = ["BMW", "Toyota", "Mazda"];
Az ezzel a szintaxissal létrehozott érték egy olyan objektum, aminek a prototype linkje a beépített Array objektumra mutat.
Ebből örököl egy csomó tömbspecifikus metódust (push, pop, slice, splice stb...) és a length propertyt. Tehát a tömb is objektum, de speciális objektum.III. typeof
A typeof egy legacy nyelvelem. Minden objektumra, függetlenül, hogy miből származik, a type operátor "object"-et ad vissza, kivéve function esetében. Tömb esetén tehát szintén "object"-et fog visszaadni.
Ha azt akarod tesztelni, hogy egy érték tömb vagy sem:
1. cars instaceof Array true-t ad vissza, ezzel jelezve, hogy a cars proto linkje az Array-re mutat (ami egyébként az Objectre linkel tovább). Cross framek (iframe) esetében az instanceof bugosan viselkedik, mindig false-t ad vissza.
2. Array.isArray(cars); szintén true-val tér vissza tömb esetén. Ez cross-frame kompatibilis. -
sztanozs
veterán
Egy kicsit körbejártam ezt, és elismerem, igazad van.


Ezek szerint JS-ben elméletileg NINCS is tömb, a tömb is objektum, DE az objektumok a gyakorlatban tömb ÉS objektum SZINTAXISSAL is kezelhetők. Viszont akkor félrevezető, hogy tömb szintaxissal létrehozott objektumokat tömbnek "hazudja" a Console ...Megerősítésképpen:
Tanulságos ..., nyilván van gyakorlati előnye, de szigorúan nézve számomra ez inkább zavaró. Az ember azt hiszi, hogy tömbje van, pedig nem is ...Nincs ebben semmi magia, miert ne lehetne a tomb egy tomb tipusu objektum (pontosabban egy olyan objektum, aminek tomb a prototipusa)...?
-
nevemfel
senior tag
Ha tömb lenne, így kellene rá hivatkozni: backpack['pocketnum']
Ez javascript esetében nem így van. Objektum propertykre is lehet hivatkozni ezzel a szintaxissal, ezt nevezik "bracket notation"-nak. Egyébként javascriptben a tömb is egy objektum. És még valami: javascriptben nincs olyan, hogy "asszociatív tömb". Az asszociatív tömb (tömb, ahol a tömbelem kulcsa string) az az objektum.
-
gabor128
aktív tag
Köszi! Rosszul fogalmaztam.
@nevemfel: neked is köszi! A napló nem volt bekapcsolva!
-
lanszelot
addikt
function getSamePieces(t1,t2) {t3 = t2.slice(); // klónozáslength_before = t3.length;for (var i=0; i<t1.length;i++) {idx3 = t3.indexOf(t1[i]);if ( idx3 != -1)t3.splice(idx3, 1);}nRet = (length_before-t3.length);while(t3.length > 0)t3.pop(); // törlésreturn nRet;}t1 = [1,2,3,4,5,6,7];t2 = [2,8,2,1,6,1,1];nSame = getSamePieces(t1,t2);document.write(nSame);igen, ez működik
Nagyon szépen köszönöm
-
Mr. Y
őstag
Persze, kiindulási alapnak gondoltam én is.
Ezért "ragoztam" a scrollozás kérdését, meg a darabszámot, ez a konkrét feladat függvénye.
Ezenkívül a "bezár" metódus része lehetne az is, hogy a "select"-et eltüntetjük, de ez is csak részletkérdés.document.getElementById("mydiv").style.display = "none";Van amikor elég egy egyszerűbb (kompromisszumos) megoldás is, de ha nem, akkor bonyolítani kell.
Köszönöm.
Végül egy másik megoldás felé indultam el, de valamiért az sem jön össze, azzal viszont már a CSS topikba megyek át, mert oda tartozik. -
disy68
aktív tag
Nekem összejött egy megoldás a "size" változtatással: [link]
Ez a megoldás akkor jó, ha a "select" darabszáma nem túl sok (vagyis elfér a képernyőn), mert a scrollozás le van tiltva.
Ha sok elem van, akkor egyrészt a "size" értékét korlátozni kell, másrészt a scrollozást "auto"-ra kell állítani.
A "form"-ot én "div"-re cseréltem.Igen, kicsit régies, de játéknak jó volt.

-
Mr. Y
őstag
Nekem összejött egy megoldás a "size" változtatással: [link]
Ez a megoldás akkor jó, ha a "select" darabszáma nem túl sok (vagyis elfér a képernyőn), mert a scrollozás le van tiltva.
Ha sok elem van, akkor egyrészt a "size" értékét korlátozni kell, másrészt a scrollozást "auto"-ra kell állítani.
A "form"-ot én "div"-re cseréltem.Igen, kicsit régies, de játéknak jó volt.

Nem is rossz kiindulási alapnak. Köszönöm
-
Sk8erPeter
nagyúr
A JS számolások aritmetikai pontosságának növelésére van-e valakinek valamilyen ötlete?
Mert a beépített számomra egy kicsit igénytelen, kicsit durvának tartom hogy már egy egyszerű szorzásra is pontatlan ( illetve vagy pontatlan, vagy nem ! ), megengedő módon a gyökvonást még valamennyire megérteném ...
pl.1: 17 * 1.1 = 18.700000000000003
pl.2: 7410 * 0.43 = 3186.2999999999997
pl.3: Math.pow(Math.sqrt(1.5),2) = 1.4999999999999998
pl.4: Math.pow(1.6,2) = 2.5600000000000005Én elkövettem magamnak egy ki/bekapcsolható "automatikus decimális kerekítés"-t, ami nem fix, hanem rugalmas hosszúságban próbál decimálisan kerekíteni. Ez egy bizonyos határig remekül működik, pl. a fenti esetekben is, de nagyobb számok esetén (mondjuk 10 jegyű számok felett), vagy túl sok tizedesjegy esetén már hatástalan. A kikapcsolhatóságot is bele kellett tenni, hogy amikor nem kell, akkor azért ne kerekítsen, mert úgy jobban meghamisítja az eredményt, mint a "gyári" pontatlanság.
De ez igazából barkácsolás, pótmegoldás. A korrekt az lenne, ha a JS egy "rendesebb" aritmetikát használna, ennek ellenére ha valakinek lenne valami jó ötlete, azt megköszönném.Itt van pár topic, ahol ezt jó alaposan kitárgyalják:
http://stackoverflow.com/questions/588004/is-javascripts-floating-point-math-broken
http://stackoverflow.com/questions/3556789/javascript-math-error-inexact-floats
http://stackoverflow.com/questions/5037839/avoiding-problems-with-javascripts-weird-decimal-calculations -
Sk8erPeter
nagyúr
No, itt vagyok.
Erre a "var ls = window.content.localStorage;" sorra ezt mondja a Hibakonzol:
TypeError: window.content is nullEzt sejtettem, persze azt nem mondja hogy mi kell helyette ...

Ugyanez a kód böngésző ablakban remekül működik.
Mint írtam, "mindennel" próbálkoztam már, csak semmi nem jött be."Mindennel" biztos nem, mert akkor már megoldódott volna.

Továbbra is csak linkeket tudok dobálni:
http://eternalblackzero.blogspot.hu/2008/12/typeerror-windowcontentisnull-error.html
http://stackoverflow.com/questions/12267903/firefox-typeerror-localstorage-is-null/12269453#12269453
https://groups.google.com/forum/#!topic/mozilla.dev.extensions/iIrQXyMIhOU
(http://stackoverflow.com/questions/13636268/why-can-not-the-browser-url-be-gotten-from-a-dialog-window-firefox)
https://code.google.com/p/dactyl/issues/detail?id=148
http://comments.gmane.org/gmane.comp.mozilla.firefox.vimperator/4275
http://kasperowski.com/2008/12/firefox-tabs-broken.html
stb.Firefox-verziód?
-
Sk8erPeter
nagyúr
Amit először mutattam, ott window.content.localStorage; módon érte el, próbáld meg azt is, nem véletlenül linkeltem...
(Továbbra sem írtad, mikkel próbálkoztál, úgyhogy így elég rejtélyes...) -
Sk8erPeter
nagyúr
Ez a példa simán böngészőben szerintem is működne, de az én kérdésem nem erre vonatkozott, hanem .xpi-re (kiegészítő, Add-on). Úgy tűnik hogy az alapesetben nem akar hozzáférni a böngésző default localStorage-ához, pontosan az a kérdés hogy ezt mégis hogyan kellene megoldani. Egyébként én localStorage-ot kérdeztem, nem a sessionStorage-t, de valószínűleg nagyon hasonlóak, így ez is érdekel. A "fáma" szerint a localStorage megőrzi a tartalmát kilépés (böngésző bezárás) után, a sessionStorage pedig nem, az én problémámat a localStorage tudná megoldani.
Sajnos xpi-t nem tudok debug-olni, tehát semmi hibaüzenetem nincs. A teszt célból használt editbox-om üres marad, egyszerűen a "hibás" utasítást nem hajtja végre, megy tovább.
"Sajnos xpi-t nem tudok debug-olni"
https://blog.mozilla.org/addons/2009/01/28/how-to-develop-a-firefox-extension/
http://davidthomasbernal.com/blog/2011/04/09/debugging-firefox-extensions-the-easy-way/
http://stackoverflow.com/questions/1077719/fastest-way-to-debug-firefox-addons-during-development
http://stackoverflow.com/questions/6855359/how-to-debug-firefox-extension
http://stackoverflow.com/questions/9464545/debugging-firefox-extension-from-add-on-builder
http://stackoverflow.com/questions/6239118/how-can-i-debug-a-firefox-extension-with-firebug
http://stackoverflow.com/questions/11128454/debugging-javascript-in-firefox-add-on -
Sk8erPeter
nagyúr
Köszi a választ, de megkérdezném hogy ezekből neked melyik működött a gyakorlatban?
Ezt a linket én is elég hamar megtaláltam, és kipróbáltam az ott írtakat, de nálam egyik ötlet sem működött xpi-ben (és a többség böngésző-ablakban sem), persze lehet hogy valamit rosszul csináltam. Az XPCOM-nak is nekifutottam, de nincs meg hozzá a környezetem, és más ehhez hasonlóan "bonyolult" megoldáshoz sem, de "hátha" alapon azért kipróbáltam őket. Nem tudom használni a node.js-t, meg pl. a require parancsot sem. Én csak egy egyszerű szövegszerkesztőt használok fejlesztő eszköznek, szeretném ha a kódom 1 db HTML fájl lenne, és "megállna a saját lábán".Firefox add-on fejlesztgetésével még nem foglalkoztam, de mivel ez az elfogadott, és upvote-olt válasz, feltételezem, hogy működnie kellene a bővítményben is.
Egyáltalán mit ír ki neked, milyen problémát tapasztalsz? Nem volt túl bőbeszédű a hibaleírásod, mert nagyjából annyit írtál, hogy "nem működik". Debuggoltad (pl. Firebug)? Mivel próbálkoztál? Mi történt?(#3617) martonx :
azt írta, simán, böngészőben kipróbálgatva működőképes megoldást talált, csak FF-bővítmény formájában "nem működik" (az okát nem írta).
Amúgy localStorage kell neki, nem sessionStorage, de a kezelése végül is ugyanaz. -
martonx
veterán
Köszi a választ, de megkérdezném hogy ezekből neked melyik működött a gyakorlatban?
Ezt a linket én is elég hamar megtaláltam, és kipróbáltam az ott írtakat, de nálam egyik ötlet sem működött xpi-ben (és a többség böngésző-ablakban sem), persze lehet hogy valamit rosszul csináltam. Az XPCOM-nak is nekifutottam, de nincs meg hozzá a környezetem, és más ehhez hasonlóan "bonyolult" megoldáshoz sem, de "hátha" alapon azért kipróbáltam őket. Nem tudom használni a node.js-t, meg pl. a require parancsot sem. Én csak egy egyszerű szövegszerkesztőt használok fejlesztő eszköznek, szeretném ha a kódom 1 db HTML fájl lenne, és "megállna a saját lábán".A válaszként bejelölt megoldásnak működnie kellene simán böngészőben is.
Sima böngészőben egyébként ennyi a használata:
sessionStorage.setItem("kulcs", "Teszt érték");
console.log(sessionStorage.getItem("kulcs")); -
Sk8erPeter
nagyúr
Sziasztok!
A nálam tapasztaltabb JS-esekhez lenne egy kérdésem:
Hogyan lehet (minél egyszerűbben) JS kódból elérni a localStorage-t saját Firefox Add-on-ban, azaz kiegészítőben, .xpi-ben? Egy HTML fájlból (amiben benne van a JS kód is), "sima" böngésző-ablakban megy a dolog, de ezt becsomagolva egy .xpi-be ez teljességgel nem működik (miközben a fájl amúgy működik).
Napok óta keresgélek a gugliban, persze sok "nyomra" bukkantam , néhány ötletet ki is próbáltam, de egyik sem működött nálam. Csinált már itt valaki ilyet?Amúgy semmi extra, csak azt szeretném ha 3-4 checkbox, illetve beállítás eltárolódna, és nem kellene ezeket minden induláskor újra beállítani. Nem szeretnék ezért adatbázist vagy konfigurációs fájlt használni, a localStorage nekem pont megfelelne, de azért meghallgatok minden véleményt.
Új hozzászólás Aktív témák
-
Fórumok
Mobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokPROHARDVER! - hardver fórumok
Notebookok TV & Audió Digitális fényképezés Alaplapok, chipsetek, memóriák Processzorok, tuning Hűtés, házak, tápok, modding Videokártyák Monitorok Adattárolás Multimédia, életmód, 3D nyomtatás Tabletek, E-bookok Nyomtatók, szkennerek PC, mini PC, barebone, szerver Beviteli eszközök Egyéb hardverek PROHARDVER! BlogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokLOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendFÁRADT GŐZ - közösségi tér szinte bármiről
Tudomány, oktatás Sport, életmód, utazás, egészség Kultúra, művészet, média Gazdaság, jog Technika, hobbi, otthon Társadalom, közélet Egyéb Lokál PROHARDVER! interaktív
- Eredeti játékok OFF topik
- Autós topik
- Mesterséges intelligencia topik
- Luck Dragon: MárkaLánc
- AMD off topik: VGA, CPU, APU és minden, ami AMD
- MasterDeeJay: Low budget (50.000 forint) light gémer gép összerakása
- Házimozi belépő szinten
- Fokozatosan erősít majd a szerverpiacon az Intel
- Folyószámla, bankszámla, bankváltás, külföldi kártyahasználat
- gban: Ingyen kellene, de tegnapra
- További aktív témák...
- 27% - ASUS ROG CROSSHAIR X670E HERO Alaplap.
- Telefon felvásárlás!! iPhone 12 Mini/iPhone 12/iPhone 12 Pro/iPhone 12 Pro Max
- G.SKILL TRIDENT Z RGB 16GB (2x8GB) DDR4 3200MHz F4-3200C16D-16GTZR
- Crucial T705 4TB Gen5 SSD, 14100MB/s
- Motorola Edge 50 Pro 512GB Black Beauty Karcmentes állapot 12GB RAM 6 hónap garancia
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest






