Wpis z mikrobloga

@andrzejfryczmodrzewski1503:

console.log(2 || true) - operator || or działa tak, że jeżeli pierwszy argument, w twoim przypadku liczba "2" jest true, to całość zwraca true, a liczby inne niż 0 są true, czyli "jeżeli 2 lub true -> zwróć true"

console.log(2==true) daje false - tutaj robisz zupełnie coś innego niż przykład na górze
console.log(2==true) daje false - tutaj robisz zupełnie coś innego niż przykład na górze


@Melcma: To co tutaj robię? ( ͡° ͜ʖ ͡°) Co się tam w środku dzieje?

@epi No tak, ale czemu nie konwertuje tej 2 do wartości bool? Skoro Boolean(2) == true, to na logikę przy 2==true też powinno wyjść true.
@andrzejfryczmodrzewski1503: operator || w javascripcie funkcjonuje troszkę inaczej niż w innych językach.

W typowych językach operator || działa jak && oraz inne tego typu - konwertuje całe wyrażenie do booleana.
Np w Javie/C#/C++/PHP/czymkolwiek: ( 5 || true ) -> true ; ( false || true ) -> true ; ( 5 || 3 ) -> true itp.

Aby wyjaśnik jak to działa w JS, najpierw wprowadzimy jeden termin: wartość może być
@andrzejfryczmodrzewski1503: Te operacje logiczne są identyczne w większości popularnych języków programowania. W Pythonie jest dokładnie tak samo, w Javie, PHP i C# też. Tak zostało odgórnie przyjęte, że każda liczba większa od 0 jest traktowana jak 'prawda'. Operator || sprawdza czy wartość jest prawdą. Zgodnie z przyjętym założeniem 2 zwraca prawdę. Operator porównania, nie sprawdza czy jedno lub drugie wyrażenie jest prawdą, ale bada ich równość względem siebie, czyli np. czy