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
+7-7
Original file line number
Diff line number
Diff line change
@@ -7,8 +7,8 @@ W tym artykule zakładamy, że wyrażenie jest "zdefiniowane", jeżeli nie jest
7
7
Operator łączenia wartości null zapisujemy jako dwa znaki zapytania `??`.
8
8
9
9
Wynikiem `a ?? b` jest:
10
-
-jeżeli `a`jest zdefiniowane, to wynikiem jest `a`,
11
-
- jeżeli `a` nie jest zdefiniowane, to wynikiem jest `b`.
10
+
-`a`jeżeli jest zdefiniowane,
11
+
-`b`jeżeli `a` nie jest zdefiniowane.
12
12
13
13
14
14
Innymi słowy, `??` zwraca pierwszy argument jeżeli jego wartość jest inna niż `null/undefined`. W przeciwnym razie, zwraca drugi argument.
@@ -43,7 +43,7 @@ Możemy również użyć sekwencji `??`, żeby wybrać pierwszą wartość z li
43
43
44
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ć.
45
45
46
-
Chcielibyśmy wyświetlić nazwę użytkownika użyuwając jednej z tych zmiennych, albo wyświetlić "Anonim", jeżeli wszystkie są niezdefiniowane.
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
48
48
Użyjmy do tego operatora `??`:
49
49
@@ -81,7 +81,7 @@ Z drugiej strony, Operator łączenia wartości null `??` został dodany do Java
81
81
82
82
Ważną różnicą pomiędzy nimi jest:
83
83
- `||` zwraca pierwszą *truthy* wartość.
84
-
- `??` zwraca pierwszą *defined* wartość.
84
+
- `??` zwraca pierwszą *zdefiniowaną* wartość.
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
@@ -103,7 +103,7 @@ alert(height ?? 100); // 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.
105
105
106
-
## Precedence /
106
+
## Priorytet /
107
107
108
108
Priorytet operatora `??` jest raczej niski: `5` [tabela MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Operator_Precedence#Table). Więc `??` jest przetwarzane przed `=` i `?`, ale po większości innych operatorów, jak `+`, `*`.
109
109
@@ -141,7 +141,7 @@ let x = 1 && 2 ?? 3; // Błąd składni
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 `||`.
143
143
144
-
Używaj dokładnych nawiasów żeby uniknąć problemu:
144
+
Używaj nawiasów żeby uniknąć problemu:
145
145
146
146
```js run
147
147
*!*
@@ -158,7 +158,7 @@ alert(x); // 2
158
158
Jest używany do przypisania domyślnej wartości do zmiennej:
159
159
160
160
```js
161
-
// ustaw height=100, jeżeli height jest null lub undefined
161
+
// ustaw height=100, jeżeli height jest null lub undefined
0 commit comments