Article View: pl.comp.lang.javascript
Article #51605Re: Operator ||
From: nkab
Date: Thu, 19 Nov 2015 09:55
Date: Thu, 19 Nov 2015 09:55
66 lines
4149 bytes
4149 bytes
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.
Technical Details
Message-ID:
<c6aafdad-68c7-4bcd-8979-45561f1024c4@googlegroups.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!goblin1!goblin.stu.neva.ru!i2no4974234igv.0!news-out.google.com!z49ni489qgd.1!nntp.google.com!b51no763565qgf.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mailReferences:
<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>Show Full Headers
Complete Article Headers
X-Received: by 10.182.29.197 with SMTP id m5mr5068077obh.23.1447926921831; Thu, 19 Nov 2015 01:55:21 -0800 (PST) X-Received: by 10.140.94.115 with SMTP id f106mr135531qge.17.1447926921723; Thu, 19 Nov 2015 01:55:21 -0800 (PST) Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!goblin1!goblin.stu.neva.ru!i2no4974234igv.0!news-out.google.com!z49ni489qgd.1!nntp.google.com!b51no763565qgf.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Newsgroups: pl.comp.lang.javascript Date: Thu, 19 Nov 2015 01:55:21 -0800 (PST) In-Reply-To: <31b156e9-661f-42a8-b716-acd48154d09c@googlegroups.com> Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=31.182.92.26; posting-account=xnOwqAoAAAAJ48pUkVrL2a6sJByqdB8s NNTP-Posting-Host: 31.182.92.26 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> User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: <c6aafdad-68c7-4bcd-8979-45561f1024c4@googlegroups.com> Subject: Re: Operator || From: nkab@toya.net.pl Injection-Date: Thu, 19 Nov 2015 09:55:21 +0000 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit