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
Copy file name to clipboardExpand all lines: 1-js/02-first-steps/12-nullish-coalescing-operator/article.md
+9-9
Original file line number
Diff line number
Diff line change
@@ -1,4 +1,4 @@
1
-
# Operator łączenia wartości null '??'
1
+
# Operator null'owego scalania '??'
2
2
3
3
[recent browser="new"]
4
4
@@ -11,7 +11,7 @@ Wynikiem `a ?? b` jest:
11
11
-`b` jeżeli `a` nie jest zdefiniowane.
12
12
13
13
14
-
Innymi słowy, `??` zwraca pierwszy argument jeżeli jego wartość jest inna niż `null/undefined`. W przeciwnym razie, zwraca drugi argument.
14
+
Innymi słowy, `??` zwraca pierwszy argument, którego wartość jest inna niż `null/undefined`. W przeciwnym razie, zwraca drugi argument.
15
15
16
16
Operator łączenia wartości null nie jest całkiem nowy. Jest to po prostu ładna składnia, aby dostać pierwszą zdefiniowaną wartość z dwóch dostępnych.
17
17
@@ -41,7 +41,7 @@ alert(user ?? "Anonim"); // John
41
41
42
42
Możemy również użyć sekwencji `??`, żeby wybrać pierwszą wartość z listy, która jest inna niż `null/undefined`.
43
43
44
-
Powiedzmy, że mamy dane użytkownika w zmiennej`firstName`, `lastName` oraz `nickName`. Wszystkie mogą być niezdefiniowane, jeżeli użytkownik zdecyduje się ich nie wprowadzać.
44
+
Powiedzmy, że mamy dane użytkownika w zmiennych`firstName`, `lastName` oraz `nickName`. Wszystkie mogą być niezdefiniowane, jeżeli użytkownik zdecyduje się ich nie wprowadzać.
45
45
46
46
Chcielibyśmy wyświetlić nazwę użytkownika używając jednej z tych zmiennych, albo wyświetlić "Anonim", jeżeli wszystkie są niezdefiniowane.
47
47
@@ -85,7 +85,7 @@ Ważną różnicą pomiędzy nimi jest:
85
85
86
86
Innymi słowy, `||` nie rozróżnia pomiędzy `false`, `0`, pustym stringiem `""` i `null/undefined`. Wszystkie one są takie same -- falsy wartości. Jeżeli którakolwiek z tych wartości jest pierwszym argumentem w `||`, wtedy otrzymamy drugi argument jako wynik.
87
87
88
-
W praktyce, możemy chcieć użyć domyślnej wartości tylko wtedy jeżeli zmienna ma wartość `null/undefined`. To znaczy tylko wtedy kiedy wartość naprawdę jest nieznana/nie ustawiona.
88
+
W praktyce jednak, możemy chcieć użyć domyślnej wartości tylko wtedy jeżeli zmienna ma wartość `null/undefined`. To znaczy tylko wtedy kiedy wartość naprawdę jest nieznana/nie ustawiona.
89
89
90
90
Na przykład, rozważmy:
91
91
@@ -96,9 +96,9 @@ alert(height || 100); // 100
96
96
alert(height ??100); // 0
97
97
```
98
98
99
-
- Wyrażenie `height ||100` sprawdza `height` pod kątem falsy wartości, i jest ona taka.
99
+
- Wyrażenie `height ||100` sprawdza `height` pod kątem falsy wartości, i tak też właśnie jest.
100
100
- w takim razie wynikiem jest drugi argument, `100`.
101
-
- Wyrażenie `height ??100` sprawdza `height` pod kątem `null/undefined`, i nie jest,
101
+
- Wyrażenie `height ??100` sprawdza `height` pod kątem `null/undefined`, a zmienna `height`nie jest żadną z tych wartości,
102
102
- w takim razie, wynikiem jest `height` "takie jakie jest", zatem `0`.
103
103
104
104
Jeżeli zerowa wysokość jest poprawną wartością, która nie powinna być zastąpiona wartością domyślną, wtedy `??` sprawdzi się doskonale.
@@ -119,7 +119,7 @@ let area = (height ?? 100) * (width ?? 50);
119
119
alert(area); // 5000
120
120
```
121
121
122
-
W innym wypadku, jeżeli ominiemy nawiasy, wtedy `*` ma większy priorytet niż `??`, wykona się najpierw, prowadząc do niewłaściwych wyników.
122
+
W innym wypadku, jeżeli ominiemy nawiasy, wtedy `*` ma większy priorytet niż `??`, więc wykona się najpierw, prowadząc do niewłaściwych wyników.
123
123
124
124
```js
125
125
// bez nawiasów
@@ -136,7 +136,7 @@ Z powodów bezpieczeństwa, JavaScript zabrania użycia `??` razem z operatorami
136
136
Kod poniżej wywołuje błąd składni:
137
137
138
138
```js run
139
-
let x =1&&2??3; // Błąd składni
139
+
let x =1&&2??3; // Błąd składni (eng. syntax error)
140
140
```
141
141
142
142
Obostrzenia są oczywiście dyskusyjne, ale zostały dodane do specyfikacji języka celem uniknięcia błędów programowania, kiedy ludzie zaczną zmieniać z `??` na `||`.
@@ -153,7 +153,7 @@ alert(x); // 2
153
153
154
154
## Podsumowanie
155
155
156
-
- Operator łączenia wartości null `??` dostarcza szybszego sposobu na wybranie pierwszej zdefiniowanej wartości z listy.
156
+
- Operator null'owego scalania`??` dostarcza szybszego sposobu na wybranie pierwszej zdefiniowanej wartości z listy.
157
157
158
158
Jest używany do przypisania domyślnej wartości do zmiennej:
0 commit comments