Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Prośba o wytłumaczenie elementów skryptu
marlowe
post
Post #1





Grupa: Zarejestrowani
Postów: 178
Pomógł: 0
Dołączył: 2.11.2003
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Witam,
bawię się właśnie JsHacker 1.0 :) ale niestety JavaScript znam tylko "z widzenia" i mam problem z trzecim etapem. Kod wygląda tak:
Kod
<script type="text/javascript" language="JavaScript">
<!--

  function rome(N,s,R,b,a,o) {
    R='IVXLCDM'.split(s=''),b=0,a=2;
    while(N) {
      o=N%(a=7-a);
      N=N/a^0;
      while(o)
        s=R[o-->3?b+N%2+(N&=~1,o=1):b]+s;
      b++;
    }
    return s;
  }

  function check_passwd(v) {                                                                                                                                                                                                                           with(top)
    rome(v) == MCMXXXIX ? location.href = 'p4_'+v+'.html' : alert('Hasło niepoprawne !!!   ');
    return false;
  }

//-->
</script>

Oczywiście wywoływany jest poprzez:
  1. <form onSubmit="return check_passwd(passwd.value)">
  2. Podaj hasło: <input type="password" name="passwd" size="8">
  3.  
  4. <input type="submit" value="Ok">
  5. </form>

Rzecz jasna, nie chcę prosić o podanie wyniku ;) tylko o wytłumaczenie paru elementów bym mógł sobie dalej kombinować:
  1. czy dobrze się domyślam, że wywołanie funkcji, która w definicji ma kilka parametrów, z jednym z parametrem, powoduje, że parametr ten odczytywany jest jako pierwszy z listy parametrów z definicji, a pozostałe są puste (tj, że wywołanie rome(v) wykona funkcję z parametrem N == v);
  2. czy pierwsza linia funkcji rome() oznacza, że najpierw jest wywoływana instrukcja split dla 'IVXLCDM' z parametrem s='' , której wynik jest zapisywany w R (co w praktyce, jak rozumiem, oznacza zapisanie w kolejnych rekordach tablicy R ciągów zawierających kolejne znaki I, V, X, ...) natomiast b=0,a=2 to po prostu ustalenie wartości tych zmiennych?
  3. jedna z instrukcji to N=N/a^0 - z informacji w książce, którą mam wynika, że najpierw wykonuje się operację dzielenia; chciałem się natomiast dowiedzieć czy słusznie mi się wydaje, że XOR z 0 może dawać co najwyżej... 0?
  4. co oznacza zapis R[o-->...] ?- mam oczywiście na myśli "strzałkę";
  5. co oznacza with(top) w funckji check_passwd()?
Z góry dziękuję za odpowiedzi.
Pozdrawiam.
Bartek

Ten post edytował marlowe 25.06.2004, 16:56:43
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Paul
post
Post #2





Grupa: Zarejestrowani
Postów: 636
Pomógł: 0
Dołączył: 22.10.2003
Skąd: Katowice

Ostrzeżenie: (0%)
-----


Szukalem troche, ale nie udalo mi sie znalezc.... Dlatego postanowailem zaeksperymenowac (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Oto wyniiki eksperymentu (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Kod
o = 2;

//s=o-->50; // false

//s=o--<50; // true

// s=o++==o++; // false

//s = o -- < 2; // false - ze spacjami tez dziala :)

//s=o--<=1; // false, a niby 1 <= 1 wiec powinno dac true;

s=o--==2; // true, a 1 == 2 wiec powinno dac false;


alert(s);
alert(o);



No i wyszlo mi na to, ze nie jest to stricte strzalka, ale jakas hybryda kilku innych operatorow skoro dziala i ze spacjami (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Z poczatku myslalem, ze to zmiejsza wartosc zmiennej a potem porownuje... No ale, doszedlem do wniosku, ze to porownuje nie zmniejszone, a dopiero potem zmniejsza... (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Dobrze by bylo akby ktos mogl specyzowac to zagadnienie bo to co ja napisalem to tylko takie moje przypuszczenia (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 13.10.2025 - 09:19