Thread View: pl.comp.lang.javascript
10 messages
10 total messages
Started by Romek
Tue, 17 Nov 2015 14:40
Operator ||
Author: Romek
Date: Tue, 17 Nov 2015 14:40
Date: Tue, 17 Nov 2015 14:40
16 lines
1981 bytes
1981 bytes
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
Re: Operator ||
Author: Cezary Tomczyk
Date: Tue, 17 Nov 2015 16:20
Date: Tue, 17 Nov 2015 16:20
23 lines
1884 bytes
1884 bytes
W dniu 11/17/2015 o 3:40 PM, Romek pisze:
> 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.
https://developer.mozilla.org/pl/docs/Web/JavaScript/Reference/Operators/Logical_Operators
--
Cezary Tomczyk
http://www.ctomczyk.pl/
Re: Operator ||
Author: nkab
Date: Wed, 18 Nov 2015 08:21
Date: Wed, 18 Nov 2015 08:21
28 lines
2364 bytes
2364 bytes
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)
Andrzej.
Re: Operator ||
Author: Cezary Tomczyk
Date: Wed, 18 Nov 2015 09:11
Date: Wed, 18 Nov 2015 09:11
38 lines
2507 bytes
2507 bytes
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/
Re: Operator ||
Author: nkab
Date: Wed, 18 Nov 2015 09:30
Date: Wed, 18 Nov 2015 09:30
46 lines
3154 bytes
3154 bytes
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.
Re: Operator ||
Author: zpksoft
Date: Wed, 18 Nov 2015 14:47
Date: Wed, 18 Nov 2015 14:47
56 lines
3743 bytes
3743 bytes
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ł
Re: Operator ||
Author: 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.
Re: Operator ||
Author: zpksoft
Date: Thu, 19 Nov 2015 13:27
Date: Thu, 19 Nov 2015 13:27
14 lines
1886 bytes
1886 bytes
W dniu czwartek, 19 listopada 2015 10:55:22 UTC+1 użytkownik nk...@toya.net.pl napisał:
...>
> a=0;
> //var a; // undefined
> b=100;
>
> //alert(''+Boolean(a));
> alert('ok...'+(a||b)); // 100
>
> Andrzej.
Ale gdy a!=0 to zwróci a. Bo odpowiednikiem wartości boolean==false są 0, null, undefined itp.
Paweł
Re: Operator ||
Author: nkab
Date: Fri, 20 Nov 2015 07:54
Date: Fri, 20 Nov 2015 07:54
22 lines
2495 bytes
2495 bytes
W dniu czwartek, 19 listopada 2015 14:27:26 UTC+1 użytkownik zpksoft napisał:
> W dniu czwartek, 19 listopada 2015 10:55:22 UTC+1 użytkownik nk...@toya.net.pl napisał:
> ...>
> > a=0;
> > //var a; // undefined
> > b=100;
> >
> > //alert(''+Boolean(a));
> > alert('ok...'+(a||b)); // 100
> >
> > Andrzej.
>
> Ale gdy a!=0 to zwróci a. Bo odpowiednikiem wartości boolean==false są 0, null, undefined itp.
>
> Paweł
Ale tu, w przykładzie pytającego, najbardziej istotna była kwestia
co zwróci warunek, bo wyglądał na bardzo enigmatyczny, a po podłożeniu
cyferek wszystko stało się jasne, zaś dyskusja nie pozostawiła pytającemu
już żadnych wątpliwości o czym pewnie się dowiemy (albo nie).
Andrzej.
Re: Operator ||
Author: zpksoft
Date: Fri, 20 Nov 2015 13:04
Date: Fri, 20 Nov 2015 13:04
27 lines
2617 bytes
2617 bytes
W dniu piątek, 20 listopada 2015 08:54:13 UTC+1 użytkownik nk...@toya.net.pl napisał:
> W dniu czwartek, 19 listopada 2015 14:27:26 UTC+1 użytkownik zpksoft napisał:
> > W dniu czwartek, 19 listopada 2015 10:55:22 UTC+1 użytkownik nk...@toya.net.pl napisał:
> > ...>
> > > a=0;
> > > //var a; // undefined
> > > b=100;
> > >
> > > //alert(''+Boolean(a));
> > > alert('ok...'+(a||b)); // 100
> > >
> > > Andrzej.
> >
> > Ale gdy a!=0 to zwróci a. Bo odpowiednikiem wartości boolean==false są 0, null, undefined itp.
> >
> > Paweł
>
> Ale tu, w przykładzie pytającego, najbardziej istotna była kwestia
> co zwróci warunek, bo wyglądał na bardzo enigmatyczny, a po podłożeniu
> cyferek wszystko stało się jasne, zaś dyskusja nie pozostawiła pytającemu
> już żadnych wątpliwości o czym pewnie się dowiemy (albo nie).
>
> Andrzej.
OK, napisałem to tak dla porządku bo pytający sam przyznał że nie zna JS, więc aby nie błądził :)
Paweł
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads