Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > pl.comp.lang.javascript > #3193
| Newsgroups | pl.comp.lang.javascript |
|---|---|
| Date | 2015-11-19 01:55 -0800 |
| References | <8c1d2c90-f115-4a39-b7f2-946ba4cd634a@googlegroups.com> <66995a5a-40f9-47b3-b75c-e69da8b2f137@googlegroups.com> <5f30c$564c40c9$6def49cc$17088@nntpswitch.blueworldhosting.com> <7216a2c7-5a5a-4d25-bd92-fedcc767a8b4@googlegroups.com> <31b156e9-661f-42a8-b716-acd48154d09c@googlegroups.com> |
| Message-ID | <c6aafdad-68c7-4bcd-8979-45561f1024c4@googlegroups.com> (permalink) |
| Subject | Re: Operator || |
| From | nkab@toya.net.pl |
W dniu środa, 18 listopada 2015 15:47:04 UTC+1 użytkownik zpksoft napisał:
> W dniu środa, 18 listopada 2015 10:30:06 UTC+1 użytkownik nk...@toya.net.pl napisał:
> > W dniu środa, 18 listopada 2015 10:11:38 UTC+1 użytkownik Cezary Tomczyk napisał:
> > > W dniu 11/18/2015 o 9:21 AM, nkab@toya.net.pl pisze:
> > > > W dniu wtorek, 17 listopada 2015 15:40:55 UTC+1 użytkownik Romek napisał:
> > > >> Witam,
> > > >>
> > > >> język javascript jest mi zupełnie obcy. Pewne potrzebne mi informacje znalazłem bibliotece jQuery. Ponieważ nie rozumiem zapisu proszę o pomoc i wyjaśnienie. W funkcji jest zapis :
> > > >>
> > > >> jQuery.fn.extend({
> > > >> offset:
> > > >> [...]
> > > >> return {
> > > >> top: box.top + (win.pageYOffset || docElem.scrollTop)-(docElem.clientTop || 0),
> > > >> left: box.left + (win.pageXOffset || docElem.scrollLeft) - (docElem.clientLeft || 0)
> > > >> [...]
> > > >>
> > > >>
> > > >> jak jest wartość wyrażenia (win.pageYOffset || docElem.scrollTop) lub (docElem.clientTop || 0). Z dokumentacji JS wynika, że operator OR zwraca wartości TRUE, FALSE i nie mogę tego dopasować do powyższego wyrażenie. Czego nie wiem. Proszę o krótkie wyjaśnienie.
> > > >>
> > > >> Romek
> > > >
> > > > Zamień sobie to na cyferki a wszystko ci się rozjaśni:
> > > >
> > > > (win.pageYOffset || docElem.scrollTop)
> > > >
> > > > alert(win.pageYOffset) np. da 200
> > > > alert(docElem.scrollTop) np. da 100
> > > >
> > > > (200 or 100)
> > >
> > > Nie. Lewa strona jest konwertowana do typu Boolean i jeśli jest true, to
> > > jest zwracana jego wartość. W przeciwnym wypadku prawa strona jest zwracana.
> > >
> > > W tym przypadku Boolean(200) daje true, a więc 200 jest zwracane. Gdyby
> > > win.pageYOffset było undefined, to Boolean(undefined) daje false i prawa
> > > strona jest zwracana.
> > >
> > > --
> > > Cezary Tomczyk
> > > http://www.ctomczyk.pl/
> >
> > Dzięki.
> >
> > Minie bardziej chodziło o to jak pytający praktycznie
> > powinien analizować kod i jak najłatwiej uzyska odpowiedź na warunek.
> >
> > Andrzej.
>
> false or true <- da true czyli prawą stronę
> true or false <- da true czyli lewą stronę.
>
> Czyli: wynik a or b zwróci wartość przwdziwą. A ściślej: pierwszą prawdziwą, tzn. jeżeli a jest true i b jest true to zwróci a. Jest tak dlatego, że działanie true or cokolwiek zawsze da true więc po co sprawdzać co jest pod cokolwiek.
>
> (Oczywiście Cezary Tomczyk ma rację)
>
> Paweł
a=0;
//var a; // undefined
b=100;
//alert(''+Boolean(a));
alert('ok...'+(a||b)); // 100
Andrzej.
Back to pl.comp.lang.javascript | Previous | Next — Previous in thread | Next in thread | Find similar
Operator || Romek <radek.pwf@gmail.com> - 2015-11-17 06:40 -0800
Re: Operator || Cezary Tomczyk <cezary.tomczyk@gmail.com> - 2015-11-17 17:20 +0100
Re: Operator || nkab@toya.net.pl - 2015-11-18 00:21 -0800
Re: Operator || Cezary Tomczyk <cezary.tomczyk@gmail.com> - 2015-11-18 10:11 +0100
Re: Operator || nkab@toya.net.pl - 2015-11-18 01:30 -0800
Re: Operator || zpksoft <zpksoft@op.pl> - 2015-11-18 06:47 -0800
Re: Operator || nkab@toya.net.pl - 2015-11-19 01:55 -0800
Re: Operator || zpksoft <zpksoft@op.pl> - 2015-11-19 05:27 -0800
Re: Operator || nkab@toya.net.pl - 2015-11-19 23:54 -0800
Re: Operator || zpksoft <zpksoft@op.pl> - 2015-11-20 05:04 -0800
csiph-web