-
GAMEPOD.hu
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
-
petyus_
senior tag
válasz instantwater #7998 üzenetére
Tisztában vagyok vele, jelenleg is egy webforms alkalmazáson dolgozom, ráadásul a legkisebb probléma vele, hogy webforms . Banki project, múltkor nekem kellett deployolnom, ami abból állt, hogy a gépemre publisholt projectet átmásoltam a megadott mappába (egyelőre csak QA-ra, de productionbe is így megy ). Ugyanennél a cégnél közben írunk egy web api-t is, de hiába indul 0-ról, azt sem engedték core-ban írni, mert hogy nem lehet csakúgy telepíteni a core-t a szerverekre (ami elég béna kifogás, mert self-contained-ként simán mehetne oda).
-
togvau
senior tag
moment js-el szenvedek kicsit: a bemenő adat teljesen jó, toString()-el, ashours-al, és a többivel is azt kapom amit kéne. De ahogy a format()-ba kerül, abból már egy marhaság jön ki.
pl 5, 15, 30 percekre is egy 'H M' format stringgel mindig 0 1 jön ki. Ha a bemenő adat az null, akkor is.
Ha egy 'YYYY MM DD HH MM SS'-adok arra is ugyan ez a marhaság jön ki. Ha nem adok format stringet, akkor is.
Miért van ez? Ez feature? Vagy bug?hitler, sztálin, micro usb
-
togvau
senior tag
-
togvau
senior tag
válasz nevemfel #8007 üzenetére
moment.utc(moment.duration(time).asMilliseconds()).format('HH MM SS')
mindig 0 óra 1 perc az eredmény, bármilyen format stringgel, kivéve, ha a benne lévő óra több mint 1 mert akkor már az óra szerepel benne, de a perc mindig 0.
Minden beépített formázás (toString(), toisostring(), stb viszont helyesen dobja ki az időpontot, csak ugye más formátumban kéne. millisecet toStringelve is helyes értéket ad. Csak a format után rossz.moment.utc(moment.now()).format('HH MM SS')
pedig teljesen jó.
Nyersen a time pl 'PT0H25M0S', ugyan ez jelenik meg a moment beépített formázó metódusainak kimenetén is (persze 1970 január elsejei kezdettel), csak a format-on rossz.[ Szerkesztve ]
hitler, sztálin, micro usb
-
disy68
aktív tag
Érdekes megközelítés ez a functional programming jellegű dolog, nekem kevésbé szimpatikus, mintha az adott class/object-nek lennének a függvényei, mert így nincs convienient kódkiegészítés hozzá és vagy megtanulom mit kell importolgatni vagy a doksit kell gyakrabban forgatni. A modularizáltsága az lehet plusz, de kétlem, hogy egy dátumkezelő lib méretén múlna bármi.
(#8006) togvau
Bármit behúzhatsz jsfiddle-be. Moment.js minta[ Szerkesztve ]
“Yeah, well, you know, that’s just, like, your opinion, man.” — The Dude
-
cattus
őstag
Hát szerintem előbb-utóbb úgyis doksit kell nézegetni, az autocomplete csak egy ideig könnyíti meg az ember dolgát. Én a date-fns-t azért is szeretem, mert moduláris (kisebb bundle size), jól lehet egymásba ágyazni a függvényeket, illetve natív JS dátum osztállyal dolgozik, míg a moment mindig csinál egy saját wrappert.
Do the thing!
-
coco2
őstag
Sziasztok!
Helyi gépen html-be írt javascript-ből próbálok teszt-eket futtatni a helyi gépen futó wamp szerverre (wamp 2.2, 32 bites).
C:\wamp\bin\apache\apache2.2.22\conf\httpd.conf:
LoadModule headers_module modules/mod_headers.so
<IfModule headers_module>
Header set Access-Control-Allow-Origin: *
</IfModule>XHR objektumon küldés előtt:
xhr_teszt.socket.setRequestHeader("Access-Control-Allow-Origin", "http://127.0.0.1");
Lefutás után
.readyState==4
,.status==0
(.statusText
üres),.onerror()
éleződik.Weben annyit találtam, engedélyezzem a hozzáférést webszerveren, és illesszem be azt a header-t is csak a rend kedvéért - megtettem. Nincs eredménye.
Mit figyelmetlenkedtem el?
[ Szerkesztve ]
កុំភ្លេចប្រើភាសាអង់គ្លេសក្នុងបរិយាកាសអន្តរជាតិ។
-
crocy
tag
na közben mar a bootcamp-ek is allnak at vue-ra.
rip react. -
senior tag
A kövező problémám:
1.65 % 0.55 = 0.5499999999999998
Próbálkozásaim:
((1.65 * 100) % (0.55 * 100)) / 100 = 0.5499999999999998
((1.65 % 0.55) * 100) / 100 = 0.5499999999999998
Mi lenne itt a szép és helyes megoldás?
Az alap problémát ismerem, de ilyen esetben nem tudom mi lenne a megoldás.Köszönöm!
-
senior tag
válasz Silεncε #8019 üzenetére
Köszönöm szépen!
Annyi javítást eszközölnék rajta, hogy az egészet még elosztanám 100-al, hogy megkapjam a helyes maradékot, ha van.
(Math.round(1.65 * 100) % Math.round(0.55 * 100)) / 100
Ebben a példában a
0.55 * 100
miatt kell aMath.round()
ahogy látom, mert0.55 * 100 = 55.00000000000001
JS logic
-
Silεncε
őstag
Ahogy sztanozs is írja, ennek nem sok köze van a JS-hez, ez a számítógépes számábrázolás pontatlansága (IEEE754 és satöbbi) és minden nyelven így működik (ezért mondták nekünk az egyetemen, hogy float számok esetén sosem egyenlőséget vizsgálunk, hanem hogy a két szám különsége egy megadott threshold alatt van-e, mert különben igen szívás lesz debugolni...)
[ Szerkesztve ]
-
senior tag
válasz Silεncε #8022 üzenetére
Jogos, túl közhelyet használtam és sarkítottam a "JS logic"-al.
Közben pontosítottam és univerzálisabbá tettem az ellenőrzésem, figyelembe véve, hogy mennyi tizedesjeggyel van dolgom.
Ezek most itt beégetett adatok a konkrét példa miatt, de ezekre van függvény, ami megadja az értéküket, csak nem akartam bonyolítani.
var quantity = 1.65,
var minQuantity = 0.55,
var decimalsCount = 2;
if ((Math.round(quantity * Math.pow(10, decimalsCount)) % Math.round(minQuantity * Math.pow(10, decimalsCount))) / Math.pow(10, decimalsCount)) {
-
Pala
veterán
Sziasztok! Akad itt valaki, aki object composition (és ezzel kapcsolatos patternek, best practice-ek) terén otthonosabban mozog.
Szinte bárhol olvasok a témáról, általában a lentihez hasonló példákkal illusztrálják, hogyan is néz ez ki a gyakorlatban (ez nem az én kódom, csak példa):
const canCast = (state) => ({
cast: (spell) => {
console.log(`${state.name} casts ${spell}!`);
state.mana--;
}
})
const canFight = (state) => ({
fight: () => {
console.log(`${state.name} slashes at the foe!`);
state.stamina--;
}
})
const fighter = (name) => {
let state = {
name,
health: 100,
stamina: 100
}
return Object.assign(state, canFight(state));
}
const mage = (name) => {
let state = {
name,
health: 100,
mana: 100
}
return Object.assign(state, canCast(state));
}
scorcher = mage('Scorcher')
scorcher.cast('fireball'); // Scorcher casts fireball!
console.log(scorcher.mana) // 99
slasher = fighter('Slasher')
slasher.fight(); // Slasher slashes at the foe!
console.log(slasher.stamina) // 99Namármost, nekem ezzel az a problémám, hogy a kompozíció során minden egyes object instance új példányt kap ugyanabból a metódusból is, tehát tkp. elkezdjük szépen teleszemetelni a memóriát, kvázi feleslegesen. Kérdés, hogy:
1. El tudjuk-e ezt kerülni úgy, hogy a fenti kódban a canCast és canFight továbbra is pure function-ök maradjanak (mondjuk most a bennük lévő console.log miatt nem azok, de azt most gondolatban vegyük ki )!? (Pusztán azt elérni, hogy egy metóduson osztozzanak az instance-ek, nem nehéz.)Épp most írok egy játékot, ahol object compositiont használok, százas nagyságrendben készülnek majd objektumok, és nem találtam igazán szép megoldást erre a problémára.
[ Szerkesztve ]
-
sztanozs
veterán
Inkább használj valami céleszközt, ami megőrzi a tizedeseket (pl decimal.js):
var quantity = Decimal('1.65');
var minQuantity = Decimal('0.55');
quantity.mod(minQuantity)JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
martonx
veterán
válasz instantwater #8031 üzenetére
Szerintem meg semmivel nincs összemarketingelve, történelmi beágyazottsága van. Az angular 1.X volt az első komolyan vehető js mvvm framework, még ha szar is volt, mint a bűn. Ez jutott el a tömegekhez, márpedig a nagyvállalatok nem egykönnyen váltanak. 2.X-től kezdve meg typescript alapokra váltott, ami nyilván az erősen típusos C#, Java fejlesztőknek lehet szimpi (legyünk őszinték, sok helyen ugyanaz az ember írja a backendet és a frontendet, és egy C#/Java backend mellé gyakran elég erős váltás egy típustalan JS), még ha szvsz az angular továbbra sem jó, vagy legalábbis vannak jobb alternatívák nála (mint a feljebb említett vuejs, de a react is teljesen élhető az utóbbi időben).
Én kérek elnézést!
-
Aureal
senior tag
http://fmradiom.hu ma 14:05-kor ment zenét keresnék. Az oldalon nem lehet addig visszagörgetni az idővonalat.
Tudnátok ebben vmit segíteni, hogy a megadott időpontig kinyerhető lenne vhogy az adat?
-
togvau
senior tag
válasz Silεncε #8035 üzenetére
nekem tetszik abból a szempontból, hogy olyasmi mint a JSF volt, bár abban is azért nagyobb a rend. Ott is nyomathattál a template-be java kódot, de azért nem volt ajánlott, sem jellemző. React jsx-nél meg tele fan kóddal a template, ami nagyon kaotikus tud lenni.
Bár amúgy kaotikus, és ták... hát a JS maga ilyen, hisz egy kaotikus, tákolt ökoszisztéma, aminek sok éve ki kellett volna halnia, ha nem lenne kizárólagosan támogatott a böngészőkben. (rohadjál meg m$)
[ Szerkesztve ]
hitler, sztálin, micro usb
-
Silεncε
őstag
A JSF az inkább az Angular megoldására hasonlít (ha jól emlékszem, az egyetemen egy minimálisat találkoztam csak JSF-el), az Angularnál ugye a HTML fájlba írsz TS expression-öket, de ott se bonyolultakat (nálunk ha túl sok TS kód van a templateben, segbebillentés jár érte )
Egyébként most a WebASM megjelenése óta elkezdett éledezni a remény, múltkor láttam egy WebASM alapú megoldást, ahol Pythont tudtad hasonlóan a JS-hez használni böngészőben (szóval DOM csesztetés, stb)
[ Szerkesztve ]
-
martonx
veterán
Konkrétan pl. így működik: https://dotnet.microsoft.com/apps/aspnet/web-apps/blazor
Megírod C#-ban a kódot, ami webassembly-re fordul, amit viszont az újabb böngészők pont ugyanúgy tudnak futtatni, mint pl. a javascriptet (igaziból jobban is futtatják, mert ez assembly, azaz mélyebben fut, több optimalizációt tartalmaz a befordított kód). Böngészőben futó erőforrásigényes 3D-s játokoktól indult ez el, mostanra meg ott tartunk, hogy csomó esetben ki lehet váltani vele a javascriptet (talán egyedül SEO kritikus webalkalmazások az egyetlen eset, ahol eszembe se jutna több megás dll-eket a böngészővel letöltetni, futtatni).
Én kérek elnézést!
-
Jim-Y
veterán
Egyebkent igy altalaban azok szoktak fikazni akik nem tudjak hasznalni a nyelvet. Aki tudja hasznalni es erti az max konstruktivan mondja meg, hogy mi lehetne benne jobb. En utalom a JAVA-t mert egy sz*r. Konstruktiv volt mi?!
Amugy ha nem szereted a JS-t vagy nem erted van sok olyan nyelv ami compile-to-js azokat hasznalhatod. Sok olyan is van, ami mondernebb, es jobban oszerakott nyelv mint a JS pl Dart. Esetleg probald ki azt.
-
togvau
senior tag
Meg azok szokták fikázni, akik használtak már eleget normális nyelveket, és azok tartják jónak a JS-t akik csak "láttak" mást, tanulmányaik során, mert kötelező volt.
Egyébként igen, állítólag sajtreszelővel is lehet... csak nem valami élvezetes Na olyan a JS a rendesen kivitelezett nyelvekhez képest. Vagy másik példával, mintha egy űrhajóból egy rozoga permetező kisgépbe ülnél. Amúgy tesója a LUA.Próbáltam dartot is, de sajnos vannak projekt követelmények, korlátok. Szerinted különben hozzányúlnék a JS-hez? Nem, már 12 éve is a pokolba kívántam, lesújtott, hogy így elharapódzott ez a rákfene.
Igen, a dart IS sokkal jobban összerakott nyelv, remélem elterjed, de jobb lenne ha a WASM terjedne, aztán nem lenne nyelvi kényszer, lehetne válogatni.Miben lehetne jobb a JS ? Mindenben, főleg alapjaiban, struktúráiban, mindenben, hisz az egyetlen dolog amiben jó: támogatják a böngészők. De sajnos alapjaiban nem tud jobb lenni, mert akkor a visszafelé kompatibilitás bukta...
[ Szerkesztve ]
hitler, sztálin, micro usb
-
K1nG HuNp
őstag
teso a microsoft es a wallmart havi 50k dolcsikat fizetget az end to end SaaS cuccert amit itthon bpn kalapalunk, az egyetlen masik nyelv a JSen kivul ami szerepel a repoban az SQL
hagyjuk mar ezt a nyelv temat, irjad kotlinban nyugodtan a jsedet, teljesen ertelmetlen, ha nagyon tipusokra vagy ott a TS, de az is a legtobbszor csak lassitja a fejlesztest.
(raw_item.get("pk").unwrap().as_s().unwrap().to_string()).split("#").collect::<Vec<&str>>()[1].to_string()
-
Zedz
addikt
válasz martonx #8039 üzenetére
"mert ez assembly, azaz mélyebben fut, több optimalizációt tartalmaz a befordított kód"
Szerintem ez az allitas teves. Javitsatok ki kerlek ha rosszul tudom, de "csak" annyi tortenik, hogy mondjuk a C kodod a JS engine futtatja meg. Es attol lesz ez gyorsabb mint a a Javascript kodod, hogy teljesen kimarad a parsing/compilation lepes, es AOT megkapja a binarisokat a motor.togvau:
"Miben lehetne jobb a JS ? Mindenben, főleg alapjaiban, struktúráiban, mindenben, hisz az egyetlen dolog amiben jó: támogatják a böngészők."
Ne haragudj, de ebbol a megnyilvanulasodbol sut a teljes fogalmatlansagod a temaval kapcsolatban. Megkerdezhetem, hogy mennyit tudsz alapjairol, strukturajarol?Meg azok szokták fikázni, akik használtak már eleget normális nyelveket
Definiald kerlek: "normalis" nyelv. -
martonx
veterán
The Wasm stack machine is designed to be encoded in a size- and load-time-efficient binary format. WebAssembly aims to execute at native speed by taking advantage of common hardware capabilities available on a wide range of platforms.
Jobban utána olvasva, nem a js engine-en fut. Ugyan nem ismerem a konkrét implementációt, de gondolom, akkor tud natív sebességgel futni, ha valahol mélyen fut, minél közelebb a vashoz.
Én kérek elnézést!
-
Zedz
addikt
válasz martonx #8046 üzenetére
Ez alapjan a JS motor futtatja a WASM binarist.
"akkor tud natív sebességgel futni"
Nem nativ sebesseggel fut, csak ahhoz nagyon kozel.Parsing JavaScript involves transforming plain text to a data structure called abstract syntax tree (AST) and turning that into binary format. WebAssembly is delivered as binary and decoding it happens much faster. It’s statically typed so, unlike with JavaScript, the engine doesn’t need to speculate during compilation about what types will be used. Most of the optimization happens during the compilation of source code, before it even gets into the browser. Memory is managed manually, just like in languages like C and C++, so there’s no garbage collection either. All of this gives better and more reliable performance. The execution time of WASM binaries is just 20% slower than the execution of same native code.
Szerk.: +1 megjegyzes togvau kolleganak; a WASM celja sose volt a JS "kenyszert" lecserelni. A kettonek egyutt van es lesz is ertelme.
[ Szerkesztve ]
-
Aureal
senior tag
Hello,
Hogyan tudnám egy oldal linkjei közül csak azokat kigyűjteni, amelyek .mp3 végződésre írottak?
Néztem a match parancsot, de az csak magával a .mp3 végződéssel tér vissza string értékként, a href utáni előtag meg lemarad.[ Szerkesztve ]
Új hozzászólás Aktív témák
- Amazfit I T-REX 2 I GTS 3 I GTR 3 I GTR 3 Pro
- Új Latitude 7440 2-in-1, FHD+ IPS kihajtható érintő, i7-1365U, 32GB DDR5, 512GB NVMe, IR kamera, gar
- Beszámítás! GB H610M i5 13400F 32GB DDR4 1TB SSD RTX 3070Ti 8GB MONTECH AIR 1000 Lite Corsair 650W
- Xiaomi Instant Photo Printer 1S Set Bontatlan!
- Beszámítás! GB H610M i5 13400F 16GB DDR4 250GB SSD RTX 3070Ti 8GB MONTECH AIR 100 Lite Chieftec 700W