Objasnění syntaxe Javascriptu pro blbce=mě – JavaScript, AJAX, jQuery – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Objasnění syntaxe Javascriptu pro blbce=mě – JavaScript, AJAX, jQuery – Fórum – Programujte.comObjasnění syntaxe Javascriptu pro blbce=mě – JavaScript, AJAX, jQuery – Fórum – Programujte.com

 

PavelV
~ Anonymní uživatel
150 příspěvků
1. 10. 2016   #1
-
0
-

Zdravím,

s js jsem se nikdy nezaobíral, jen se teď snažím jeden js přepsat do vba a narazil jsem...

js kód:

 for (g = 0; g < f; g += q) 

                h + m <= b && (e = r(c.slice(g, g + q), e), h += m);

cyklus jsem pochopil, jen mi uniká smysl výrazu, který se v cyklu provádí...

KDY se přiřadí výsledek fce r do e a přičte k h hodnota m? Co ten logický and?

 

    1. b:1720
    2. c:Array[54]
    3. f:53
    4. g:0
    5. h:0
    6. q:32
    7. this:C
  1.   Closure (C)
    1. F:undefined
    2. a:Array[54]
    3. d:1024
    4. e:Array[8]
    5. f:"SHA-384"
    6. g:"UTF8"
    7. h:384
    8. k:0
    9. m:1024
    10. n:Z(f, b, a)
    11. q:(b)
    12. r:(b, d)
    13. t:(b, d, c, a)
    14. u:Array[32]
    15. v:true
    16. w:Array[32]
    17. x:1
    18. y:false
    19. z:false

Nahlásit jako SPAM
IP: 81.200.62.–
PavelV
~ Anonymní uživatel
150 příspěvků
1. 10. 2016   #2
-
0
-

#1 PavelV
ještě se tam vložil obsah schránky, který tam nepatří, zajímavé...

Nahlásit jako SPAM
IP: 81.200.62.–
Kit+15
Guru
1. 10. 2016   #3
-
0
-

#2 PavelV
Tak to oprav. Máš na to hodinu, pak to už nepůjde.

Nahlásit jako SPAM
IP: 2a00:1028:83a0:37a6:f142:...–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
PavelV
~ Anonymní uživatel
150 příspěvků
1. 10. 2016   #4
-
0
-

Zdravím,

s js jsem se nikdy nezaobíral, jen se teď snažím jeden js přepsat do vba a narazil jsem...

js kód:

 for (g = 0; g < f; g += q) 

                h + m <= b && (e = r(c.slice(g, g + q), e), h += m);

cyklus jsem pochopil, jen mi uniká smysl výrazu, který se v cyklu provádí...

KDY se přiřadí výsledek fce r do e a přičte k h hodnota m? Co ten logický and?

Ještě jednou bez obsahu schránky...

Nahlásit jako SPAM
IP: 81.200.62.–
Kit+15
Guru
1. 10. 2016   #5
-
0
-

#4 PavelV
Vypadá to jako docela hnusný hack, který bude obtížné pochopit. Možná kdybys opravil názvy proměnných na něco smysluplného, tak by se to dalo rozlousknout. Takhle to vypadá jen na nějaké smetí, které vylezlo z obfuskátoru.

Nahlásit jako SPAM
IP: 2a00:1028:83a0:37a6:e478:...–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
PavelV
~ Anonymní uživatel
150 příspěvků
1. 10. 2016   #6
-
0
-

#5 Kit
když ono to jiné názvy nemá, takhle je ten skript napsán (fce s názvy na,la,qa; v každé se opakují proměnné a,b,c,d, které jsou definovány i jako globální... )

teď to trápím debugem, a zdá se, že to přiřazení fce r do e + zvětšení h o m se provede jen tehdy,
když je h + m <= b... Protože když tato podmínka platí, tak debug skočí do fce r, v opačném případě nee..

je to možné?

Nahlásit jako SPAM
IP: 81.200.62.–
Kit+15
Guru
1. 10. 2016   #7
-
0
-

#6 PavelV
Ano, je to možné. Logická funkce && má tzv. líné vyhodnocování, což se projevuje přesně popsaným způsobem. Přeloženo do běžného JS by to vypadalo asi takto: 

for (g = 0; g < f; g += q)
    if (h + m <= b) {
        e = r(c.slice(g, g + q), e);
        h += m;
    }
Nahlásit jako SPAM
IP: 2a00:1028:83a0:37a6:612b:...–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
peter
~ Anonymní uživatel
4016 příspěvků
2. 10. 2016   #8
-
0
-

   

 for (g = 0; g < f; g += q) 

                h + m <= b && (e = r(c.slice(g, g + q), e), h += m);

g=0
g<f
g += q
to je normalni cyklus.

h+m <= b && ...
to je normalni podminka

e = funkce( pole.slice(start, end), e )
to je prirazeni do e vysledek nejake funkce. vysledek muze byt
 true nebo false.
slice vybere z pole pole od start do end

(vysledek, h+=m)
to je volani window, resi se podobne treba inicializace jquery

No, a cele mi to prijde jako nesmysl, nejaky cyklus na odlakani
 pozornosti. Kod nejakeho viru nebo kod neceho, co je
 minifikovane. Pokud minifikovane, tak na oficialni strance
 budou mit nejspis i neminifikovanou verzi.

Nelze rict, co to presne dela, bez ostatniho kodu.


---

    F:undefined
    a:Array[54]
    d:1024
    e:Array[8]
    f:"SHA-384"
    g:"UTF8"
    h:384
    k:0
    m:1024
    n:Z(f, b, a)
    q:(b)
    r:(b, d)
    t:(b, d, c, a)
    u:Array[32]
    v:true
    w:Array[32]
    x:1
    y:false
    z:false
nemas tam, co je v B. Pokud tyhle hodnoty sedi, tak h+m je
 nejakych 1400 a vse ted zavisi na b. pokud b bude mensi, 
tak se zbytek kodu ignoruje. A tim padem celej cyklus je
 zbytecnej.
Nahlásit jako SPAM
IP: 193.84.199.–
peter
~ Anonymní uživatel
4016 příspěvků
2. 10. 2016   #9
-
0
-

Takhle, bylo by nelogicke davat do cyklu podminku u ktere nechces ulozit vysledek. Cili, funkce R by musela ovlivnovat ostatni promenne, aby melo smysl provadet tuto podminku v cyklu. Ono to lze takhle napsat a funguje to, ale programator by to takhle prasacky nikdy nenapsal. Cili, to byl nejspis zamer, aby neslo zjistit, co to dela.

Nahlásit jako SPAM
IP: 193.84.199.–
PavelV
~ Anonymní uživatel
150 příspěvků
8. 10. 2016   #10
-
0
-

#9 peter
Děkuji za odpověď, script jako takový počítá SHA ve všech možných verzích...

opět jsem se k tomu vrátil a narazil na další "úžasný" zápis...

            for (d = 0; 5 > d; d += 1)
                for (e = 0; 5 > e; e += 1) 
                    b[d][e] = A(k[d][e], new a(~k[(d + 1) % 5][e].a & k[(d + 2) % 5][e].a, ~k[(d + 1) % 5][e].b & k[(d + 2) % 5][e].b));

dva vnořené cykly - OK

b je pole:
b:Array[5]
    0:Array[5]
        0:a
            a:3854
            b:218893066
        __proto__:Object
        1:a
       atd...

k taktéž pole stejného formátu; funkce new a vrátí proměnou a použitou v těchto polích
funkce A provede nějaké bitové operace nad předanými parametry (XOR apod) 

1. parametr pro fci A - OK, vezmu z pole k příslušnou proměnnou a

2. parametr pro fci A - to je problém... Respektive vytvoření=zavolání fce a - jaká dvě čísla z proměnné k se vezmou?

a(~k[(d + 1) % 5][e].a & k[(d + 2) % 5][e].a, ~k[(d + 1) % 5][e].b & k[(d + 2) % 5][e].b)

1.argument fce a je: ~k[(d + 1) % 5][e].a & k[(d + 2) % 5][e].a tj. negace čeho? Co je sakra [e].a, když je celé číslo?

můžete mi to někdo objasnit? Díky.

Nahlásit jako SPAM
IP: 81.200.62.–
PavelV
~ Anonymní uživatel
150 příspěvků
8. 10. 2016   #11
-
0
-

#10 PavelV
tak jsem to s pomocí debugu a intellisense pochopil...

provede se and znegovaného a a dalšího a ze dvou různých K... 

Nahlásit jako SPAM
IP: 81.200.62.–
peter
~ Anonymní uživatel
4016 příspěvků
10. 10. 2016   #12
-
0
-

Aha, tak pro SHA to dava smysl. Tak jsem takove podobne veci videl. Ja jen, ze obvykle se takova konstrukce nepouziva, protoze neni snadne pochopit, co to presne dela a jaky bude vysledek. Nejspis jim to usnadnilo praci, kde by to museli obchazet slozitejsim kodem s vice promennymi. Ale vetsinou se to vyuziva spis ke skryvani kodu :) Jsem videl takto resit jeden js virus, ktery se snazil maskovat kod, ktery pak spustil pres eval a pridal si dalsi kod z externi stranky. No, smula, ze to poslal mi :)

Jinak, prijde mi to jako minifikovany kod. Mozna by sis mel najit neminifikovanou verzi, kde ty promenne budou mit normalni nazvy :)

Nahlásit jako SPAM
IP: 2001:718:2601:26c:f056:fd...–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 14 hostů

Podobná vlákna

Objasneni promennych v array — založil shockwave

Vysvětlení syntaxe — založil brumla

Vysvetleni syntaxe — založil radecek88

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý