Skip to content

Commit 4ed043c

Browse files
Update article.md
1 parent 7f3620a commit 4ed043c

File tree

1 file changed

+27
-29
lines changed

1 file changed

+27
-29
lines changed

Diff for: 1-js/02-first-steps/08-comparison/article.md

+27-29
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ Na matematyce poznaliśmy porównania:
1111

1212
Jak wszystkie inne operatory porównanie zwraca wartość. W tym przypadku wartością jest Boolean.
1313

14-
- `true` -- means "yes", "correct" or "the truth".
15-
- `false` -- means "no", "wrong" or "not the truth".
14+
- `true` -- oznacza "tak", "poprawnie" albo "prawda".
15+
- `false` -- oznacza "nie", "źle" albo "fałsz".
1616

1717
Na przykład:
1818

@@ -29,11 +29,11 @@ let result = 5 > 4; // przypisz wynik porównania
2929
alert( result ); // true
3030
```
3131

32-
## Porównanie stringów
32+
## Porównanie łańcuchów
3333

34-
Aby zobaczyć czy ciąg znaków jest większy niż inny JavaScript używa porównania, które nazywamy "słownikowym" lub "leksykograficznym".
34+
Aby zobaczyć czy ciąg znaków jest większy niż inny, JavaScript używa porównania, które nazywamy "słownikowym" lub "leksykograficznym".
3535

36-
Innymi słowy, stringi porównywane są litera po literze.
36+
Innymi słowy, łańcuchy porównywane są litera po literze.
3737

3838
Na przykład:
3939

@@ -43,13 +43,13 @@ alert( 'Brat' > 'Brak' ); // true
4343
alert( 'Jan' > 'Ja' ); // true
4444
```
4545

46-
Algorytm porównuje dwa stringi w prosty sposób:
46+
Algorytm porównuje dwa ciągi w prosty sposób:
4747

48-
1. Porównaj pierwszy znak w obu stringach.
49-
2. Jeśli pierwszy znak w pierwszym stringu jest większy (lub mniejszy) niż inny string, wtedy pierwszy string jest większy (lub mniejszy). Porównanie zakończone.
48+
1. Porównaj pierwszy znak w obu łańcuchach .
49+
2. Jeśli pierwszy znak w pierwszym ciągu jest większy (lub mniejszy) niż w drugim łańcuchu, wtedy pierwszy ciąg jest większy (lub mniejszy). Porównanie zakończone.
5050
3. Jeśli pierwsze znaki są takie same zrób porównanie dla kolejnego znaku w ten sam sposób jak w punkcie nr 2.
51-
4. Powtarzaj dopóki nie dojdzie do końca stringu.
52-
5. Jeśli oba stringi mają taką samą długość są równe. W przeciwnym przypadku dłuższy string jest większy.
51+
4. Powtarzaj dopóki nie nastapi koniec łańcucha znaków.
52+
5. Jeśli oba ciągi mają taką samą długość, to są równe. W przeciwnym przypadku dłuższy łańcuch jest większy.
5353

5454
W powyższych przypadkach porównanie `'Z' > 'A'` zwróci rezultat w pierwszym podejściu. Porównanie `"Brat"` z `"Brak"` będzie porównywane znak po znaku:
5555

@@ -59,9 +59,9 @@ W powyższych przypadkach porównanie `'Z' > 'A'` zwróci rezultat w pierwszym p
5959
3. `t` jest większe niż `k`. Zatrzymaj tutaj. Pierwszy string jest większy.
6060

6161
```smart header="Nie do końca słownikowa, bo kolejność wg Unicode"
62-
Podany powyżej przykład jest prawie taki sam jak algorytm używany w słownikach lub książkach telefonicznych. Ale nie jest dokładnie taki sam.
62+
Podany powyżej przykład jest prawie taki sam jak algorytm używany w słownikach lub książkach telefonicznych. Nie jest jednak dokładnie taki sam.
6363
64-
Na przykład wielkość ma znaczenie. Duża litera `"A"` nie jest równa małej literze `"a"`. Która jest większa? Mała litera `"a"`. Dlaczego? Ponieważ małe litery mają większy index w wewnętrznej tabeli kodowania znaków (Unicode), której używa JavaScript. Wrócimy do tego w rozdziale <info:string>.
64+
Na przykład wielkość ma znaczenie. Duża litera `"A"` nie jest równa małej literze `"a"`. Która jest większa? Mała litera `"a"`. Dlaczego? Ponieważ małe litery mają większy index w wewnętrznej tabeli kodowania znaków (Unicode), której używa JavaScript. Wrócimy do tego ze szczegółami w rozdziale <info:string>.
6565
```
6666

6767
## Porównania wartości różnego typu
@@ -71,11 +71,11 @@ Kiedy porównujemy wartości różnego typu JavaScript konwertuje te wartości n
7171
Na przykład:
7272

7373
```js run
74-
alert( '2' > 1 ); // true, string '2' staje się numerem 2
75-
alert( '01' == 1 ); // true, string '01' staje się numerem 1
74+
alert( '2' > 1 ); // true, łańcuch '2' staje się numerem 2
75+
alert( '01' == 1 ); // true, łańcuch '01' staje się numerem 1
7676
```
7777

78-
Dla wartości Boolean `true` staje się `1`, a `false` staje się `0`.
78+
W przypadku wartości logicznych, `true` staje się `1`, a `false` staje się `0`.
7979

8080
Na przykład:
8181

@@ -88,7 +88,7 @@ alert( false == 0 ); // true
8888
Jest możliwe, aby w tym samym czasie:
8989
9090
- Dwie wartości były równe.
91-
- Jedna z nich będzie `true` jako Boolean, natomiast druga jest `false` jako Boolean.
91+
- Jedna z nich będzie `true` jako wartość logiczna, natomiast druga `false` jako wartość logiczna.
9292
9393
Na przykład:
9494
@@ -102,7 +102,7 @@ alert( Boolean(b) ); // true
102102
alert(a == b); // true!
103103
```
104104
105-
Z punkty widzenia JavaScript taki rezultat jest oczekiwany i normalny. Porównanie konwertuje wartości na typ liczbowy (więc string `"0"` zostaje `0`), podczas gdy porównanie `Boolean` konwertuje te wartości w inny sposób.
105+
Z punkty widzenia JavaScript taki rezultat jest oczekiwany i normalny. Porównanie konwertuje wartości na typ liczbowy (więc łańcuch `"0"` zostaje `0`), podczas gdy porównanie `Boolean` konwertuje te wartości w inny sposób.
106106
````
107107

108108
## Operator identyczności
@@ -113,13 +113,13 @@ Operator równości `==` ma jedną wadę. Nie potrafi odróżnić `0` od `false`
113113
alert( 0 == false ); // true
114114
```
115115

116-
To samo się stanie gdy porównamy pusty string:
116+
To samo się stanie gdy porównamy pusty łańcuch:
117117

118118
```js run
119119
alert( '' == false ); // true
120120
```
121121

122-
Dzieje się tak, ponieważ operandy różnych typów są konwertowane do typu liczbowego podczas użycia `==`. Pusty string, a także `false` stają się 0.
122+
Dzieje się tak, ponieważ operandy różnych typów są konwertowane do typu liczbowego podczas użycia `==`. Pusty łańcuch, a także `false` stają się 0.
123123

124124
Co powinniśmy zrobić, aby odróżnić `0` od `false`?
125125

@@ -139,9 +139,7 @@ Operator identyczności jest nieco dłuższy do zapisania, ale czyni porównanie
139139

140140
## Porównania z null i undefined
141141

142-
Zobaczmy kilka skrajnych przypadków.
143-
144-
Nie jest intuicyjne w jaki sposób zachowają się `null` lub `undefined` gdy będą porównywane z innymi wartościami.
142+
Porównywanie wartości `null` lub `undefined` z innymi wartościami jest nieintuicyjne.
145143

146144

147145
Dla sprawdzenia identyczności `===`
@@ -161,7 +159,7 @@ Dla sprawdzenia równości `==`
161159
W matematyce i innych porównaniach `< > <= >=`
162160
: `null/undefined` są skonwertowane do liczb: `null` staje się `0`, natomiast `undefined` staje się `NaN`.
163161

164-
Zobaczmy kilka ciekawych rzeczy, które się dzieją gdy zaaplikujemy te reguły. I co jest najważniejsze, jak nie wpaść z nimi w tarapaty.
162+
Zobaczmy kilka ciekawych rzeczy, które się dzieją gdy zastosujemy te reguły. I co najważniejsze, jak nie wpaść w tarapaty używając ich.
165163

166164
### Dziwny rezultat: null vs 0
167165

@@ -173,7 +171,7 @@ alert( null == 0 ); // (2) false
173171
alert( null >= 0 ); // (3) *!*true*/!*
174172
```
175173

176-
W matematyce jest to dziwne. Ostatni rezultat, w którym "`null` jest większe lub równe zero" zwraca `true`, podczas gdy oba wcześniejsze zwracają `false`, wydaje się, że również powinno być `false`, a jest `true`.
174+
Z matematycznego punktu widzenia jest to dziwne. Ostatni rezultat, w którym "`null` jest większe lub równe zero" zwraca `true`, podczas gdy oba wcześniejsze zwracają `false`, wydaje się, że również powinno być `false`, a jest `true`.
177175

178176
Powodem takiego wyniku jest to, że znak `==` i porównania `> < >= <=` nie działają w ten sam sposób. Porównania konwertują `null` do liczby traktując go jako `0`. Dlatego właśnie (3) `null >= 0` jest true i (1) `null > 0` jest false.
179177

@@ -200,14 +198,14 @@ Dostaliśmy takie rezultaty ponieważ:
200198

201199
Dlaczego w ogóle przeszliśmy przez te przykłady? Czy powinniśmy pamiętać o tych osobliwych rzeczach cały czas? Nie do końca. Tak właściwie to te podstępne rzeczy staną się jasne z czasem, ale jest jeden porządny sposób na uniknięcie związanych z nimi problemów:
202200

203-
Po prostu traktuj każde porównanie z `undefined/null` używając znaku identyczności `===` zachowując wszelkie środki ostrożności.
201+
Po prostu traktuj każde porównanie z `undefined/null` używając znaku ścisłej identyczności `===` zachowując wszelkie środki ostrożności.
204202

205203
Nie używaj porównań `>= > < <=` ze zmiennymi, które mogą być `null/undefined`. Chyba że wiesz co robisz. Jeśli zmienna może mieć te wartości sprawdź je oddzielnie.
206204

207205
## Podsumowanie
208206

209-
- Operatory porównania zwracają wartość typu Boolean (true lub false).
210-
- Stringi porównywane są litera po literze w "słownikowej" kolejności.
211-
- Jeśli porównujemy wartości różnych typów, zostaną one skonwertowane do liczby (chyba, że użyjemy operatora identyczności).
207+
- Operatory porównania zwracają wartość typu logicznego (true lub false).
208+
- Łańcuchy znaków porównywane są litera po literze w "słownikowej" kolejności.
209+
- Jeśli porównujemy wartości różnych typów, zostaną one skonwertowane do liczby (chyba, że użyjemy operatora ścisłej identyczności).
212210
- Wartości `null` i `undefined` są równe sobie `==` i są różne od każdej innej wartości.
213-
- Bądź ostrożny gdy używasz porównac takich jak `>` lub `<` ze zmiennymi, które mogą być `null/undefined`. Oddzielne sprawdzanie dla `null/undefined` jest dobrym rozwiązaniem.
211+
- Bądź ostrożny gdy używasz porównac takich jak `>` lub `<` ze zmiennymi, które mogą być `null/undefined`. Oddzielne sprawdzanie dla `null/undefined` jest dobrym rozwiązaniem.

0 commit comments

Comments
 (0)