You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
50
50
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.
53
53
54
54
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:
55
55
@@ -59,9 +59,9 @@ W powyższych przypadkach porównanie `'Z' > 'A'` zwróci rezultat w pierwszym p
59
59
3.`t` jest większe niż `k`. Zatrzymaj tutaj. Pierwszy string jest większy.
60
60
61
61
```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.
63
63
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>.
65
65
```
66
66
67
67
## 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
71
71
Na przykład:
72
72
73
73
```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
76
76
```
77
77
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`.
79
79
80
80
Na przykład:
81
81
@@ -88,7 +88,7 @@ alert( false == 0 ); // true
88
88
Jest możliwe, aby w tym samym czasie:
89
89
90
90
- 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.
92
92
93
93
Na przykład:
94
94
@@ -102,7 +102,7 @@ alert( Boolean(b) ); // true
102
102
alert(a == b); // true!
103
103
```
104
104
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.
106
106
````
107
107
108
108
## Operator identyczności
@@ -113,13 +113,13 @@ Operator równości `==` ma jedną wadę. Nie potrafi odróżnić `0` od `false`
113
113
alert( 0==false ); // true
114
114
```
115
115
116
-
To samo się stanie gdy porównamy pusty string:
116
+
To samo się stanie gdy porównamy pusty łańcuch:
117
117
118
118
```js run
119
119
alert( ''==false ); // true
120
120
```
121
121
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.
123
123
124
124
Co powinniśmy zrobić, aby odróżnić `0` od `false`?
125
125
@@ -139,9 +139,7 @@ Operator identyczności jest nieco dłuższy do zapisania, ale czyni porównanie
139
139
140
140
## Porównania z null i undefined
141
141
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.
145
143
146
144
147
145
Dla sprawdzenia identyczności `===`
@@ -161,7 +159,7 @@ Dla sprawdzenia równości `==`
161
159
W matematyce i innych porównaniach `< > <= >=`
162
160
: `null/undefined` są skonwertowane do liczb: `null` staje się `0`, natomiast `undefined` staje się `NaN`.
163
161
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.
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`.
177
175
178
176
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.
179
177
@@ -200,14 +198,14 @@ Dostaliśmy takie rezultaty ponieważ:
200
198
201
199
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:
202
200
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.
204
202
205
203
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.
206
204
207
205
## Podsumowanie
208
206
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).
212
210
- 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