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: pl-PL/README.md
+164Lines changed: 164 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -2223,5 +2223,169 @@ console.log('🥑' + '💻');
2223
2223
2224
2224
Za pomocą operatora `+` można łączyć ciągi znaków. W tym przypadku łączymy ciąg `"🥑"` z ciągiem `"💻"`, otrzymując `"🥑💻"`.
2225
2225
2226
+
</p>
2227
+
</details>
2228
+
2229
+
---
2230
+
2231
+
###### 71. Jak możemy rejestrować wartości, które są komentowane po instrukcji console.log?
2232
+
2233
+
```javascript
2234
+
function*startGame() {
2235
+
constanswer=yield'Do you love JavaScript?';
2236
+
if (answer !=='Yes') {
2237
+
return"Oh wow... Guess we're done here";
2238
+
}
2239
+
return'JavaScript loves you back ❤️';
2240
+
}
2241
+
2242
+
constgame=startGame();
2243
+
console.log(/* 1 */); // Do you love JavaScript?
2244
+
console.log(/* 2 */); // JavaScript loves you back ❤️
2245
+
```
2246
+
2247
+
- A: `game.next("Yes").value` and `game.next().value`
2248
+
- B: `game.next.value("Yes")` and `game.next.value()`
2249
+
- C: `game.next().value` and `game.next("Yes").value`
2250
+
- D: `game.next.value()` and `game.next.value("Yes")`
2251
+
2252
+
<details><summary><b>Odpowiedź</b></summary>
2253
+
<p>
2254
+
2255
+
#### Odpowiedź: C
2256
+
2257
+
Funkcja generatora "wstrzymuje" swoje wykonanie, gdy widzi słowo kluczowe `yield`. Najpierw musimy pozwolić funkcji na wygenerowanie ciągu "Do you love JavaScript?", co można zrobić poprzez wywołanie `game.next().value`.
2258
+
2259
+
Każda linia jest wykonywana, dopóki nie znajdzie pierwszego słowa kluczowego `yield`. W pierwszej linii funkcji znajduje się słowo kluczowe `yield`: wykonywanie zatrzymuje się wraz z pierwszym yield! Oznacza to, że zmienna `answer` nie jest jeszcze zdefiniowana!
2260
+
2261
+
Kiedy wywołamy `game.next("Yes").value`, poprzedni `yield` zostanie zastąpiony wartością parametrów przekazanych do funkcji `next()`, w tym przypadku `"Yes``. Wartość zmiennej `answer` jest teraz równa `"Yes"`. Warunek instrukcji if zwraca `false`, a `JavaScript loves you back ❤️` zostaje zalogowany.
2262
+
2263
+
</p>
2264
+
</details>
2265
+
2266
+
---
2267
+
2268
+
###### 72. Jaki jest wynik?
2269
+
2270
+
```javascript
2271
+
console.log(String.raw`Hello\nworld`);
2272
+
```
2273
+
2274
+
- A: `Hello world!`
2275
+
- B: `Hello` <br /> `world`
2276
+
- C: `Hello\nworld`
2277
+
- D: `Hello\n` <br /> `world`
2278
+
2279
+
<details><summary><b>Odpowiedź</b></summary>
2280
+
<p>
2281
+
2282
+
#### Odpowiedź: C
2283
+
2284
+
`String.raw` zwraca ciąg znaków, w którym znaki specjalne (`\n`, `\v`, `\t` itd.) są ignorowane! Backslashe mogą być problemem, ponieważ można skończyć z czymś takim jak:`` const path = `C:\Documents\Projects\table.html` ``
2285
+
2286
+
Co skutkowałoby:
2287
+
2288
+
`"C:DocumentsProjects able.html"`Z `String.raw`, po prostu zignorowałby ucieczkę i wyświetliłby:
2289
+
2290
+
`C:\Documents\Projects\table.html`.
2291
+
2292
+
W tym przypadku ciąg to `Hello\nworld`, który zostanie wyświetlony.
2293
+
2294
+
</p>
2295
+
</details>
2296
+
2297
+
---
2298
+
2299
+
###### 73. Jaki jest wynik?
2300
+
2301
+
```javascript
2302
+
asyncfunctiongetData() {
2303
+
returnawaitPromise.resolve('I made it!');
2304
+
}
2305
+
2306
+
constdata=getData();
2307
+
console.log(data);
2308
+
```
2309
+
2310
+
- A: `"I made it!"`
2311
+
- B: `Promise {<resolved>: "I made it!"}`
2312
+
- C: `Promise {<pending>}`
2313
+
- D: `undefined`
2314
+
2315
+
<details><summary><b>Odpowiedź</b></summary>
2316
+
<p>
2317
+
2318
+
#### Odpowiedź: C
2319
+
2320
+
Funkcja asynchroniczna zawsze zwraca obietnicę. Funkcja `await` wciąż musi czekać na rozwiązanie obietnicy: oczekująca obietnica zostanie zwrócona, gdy wywołamy `getData()` w celu ustawienia `data` równym tej obietnicy.
2321
+
2322
+
Jeśli chcielibyśmy uzyskać dostęp do rozwiązanej wartości `"I made it"`, moglibyśmy użyć metody `.then()` na `data`:`data.then(res => console.log(res))`.
2323
+
2324
+
To wyświtliłoby w konsoli `"Udało mi się!"`.
2325
+
2326
+
</p>
2327
+
</details>
2328
+
2329
+
---
2330
+
2331
+
###### 74. Jaki jest wynik?
2332
+
2333
+
```javascript
2334
+
functionaddToList(item, list) {
2335
+
returnlist.push(item);
2336
+
}
2337
+
2338
+
constresult=addToList('apple', ['banana']);
2339
+
console.log(result);
2340
+
```
2341
+
2342
+
- A: `['apple', 'banana']`
2343
+
- B: `2`
2344
+
- C: `true`
2345
+
- D: `undefined`
2346
+
2347
+
<details><summary><b>Odpowiedź</b></summary>
2348
+
<p>
2349
+
2350
+
#### Odpowiedź: B
2351
+
2352
+
Metoda `.push()` zwraca _długość_ nowej tablicy! Poprzednio tablica zawierała jeden element (string `"banan"`) i miała długość `1`. Po dodaniu stringa `"apple"` do tablicy, tablica zawiera dwa elementy i ma długość `2`. Jest to zwracane przez funkcję `addToList`. Metoda `push` modyfikuje oryginalną tablicę.
2353
+
2354
+
Jeśli chciałeś zwrócić _array_ z funkcji, a nie _length of the array_, powinieneś był zwrócić `list` po dodaniu do niej `item`.
2355
+
2356
+
</p>
2357
+
</details>
2358
+
2359
+
---
2360
+
2361
+
###### 75. Jaki jest wynik?
2362
+
2363
+
```javascript
2364
+
constbox= { x:10, y:20 };
2365
+
2366
+
Object.freeze(box);
2367
+
2368
+
constshape= box;
2369
+
shape.x=100;
2370
+
2371
+
console.log(shape);
2372
+
```
2373
+
2374
+
- A: `{ x: 100, y: 20 }`
2375
+
- B: `{ x: 10, y: 20 }`
2376
+
- C: `{ x: 100 }`
2377
+
- D: `ReferenceError`
2378
+
2379
+
<details><summary><b>Odpowiedź</b></summary>
2380
+
<p>
2381
+
2382
+
#### Odpowiedź: B
2383
+
2384
+
`Object.freeze` uniemożliwia dodawanie, usuwanie lub modyfikowanie właściwości obiektu (chyba że wartością właściwości jest inny obiekt).
2385
+
2386
+
Kiedy tworzymy zmienną `shape` i ustawiamy ją jako równą zamrożonemu obiektowi `box`, `shape` również odnosi się do zamrożonego obiektu. Możesz sprawdzić czy obiekt jest zamrożony używając `Object.isFrozen`. W tym przypadku, `Object.isFrozen(shape)` zwróciłby true, ponieważ zmienna `shape` posiada referencję do zamrożonego obiektu.
2387
+
2388
+
Ponieważ `shape` jest zamrożony, a wartość `x` nie jest obiektem, nie możemy modyfikować właściwości `x`.`x` jest nadal równe `10`, a `{ x: 10, y: 20 }` zostaje wyświetlone w konsoli.
0 commit comments