Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > pl.comp.lang.javascript > #3192

Re: Operator ||

Newsgroups pl.comp.lang.javascript
Date 2015-11-18 06:47 -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>
Message-ID <31b156e9-661f-42a8-b716-acd48154d09c@googlegroups.com> (permalink)
Subject Re: Operator ||
From zpksoft <zpksoft@op.pl>

Show all headers | View raw


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ł

Back to pl.comp.lang.javascript | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

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