Skip to content

Commit 5305be3

Browse files
Add 5 translated questions | Total translated: 75
1 parent e5bee7b commit 5305be3

File tree

1 file changed

+164
-0
lines changed

1 file changed

+164
-0
lines changed

pl-PL/README.md

Lines changed: 164 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2223,5 +2223,169 @@ console.log('🥑' + '💻');
22232223

22242224
Za pomocą operatora `+` można łączyć ciągi znaków. W tym przypadku łączymy ciąg `"🥑"` z ciągiem `"💻"`, otrzymując `"🥑💻"`.
22252225

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+
const answer = 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+
const game = 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 />&nbsp; &nbsp; &nbsp;`world`
2276+
- C: `Hello\nworld`
2277+
- D: `Hello\n` <br /> &nbsp; &nbsp; &nbsp;`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+
async function getData() {
2303+
return await Promise.resolve('I made it!');
2304+
}
2305+
2306+
const data = 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+
function addToList(item, list) {
2335+
return list.push(item);
2336+
}
2337+
2338+
const result = 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+
const box = { x: 10, y: 20 };
2365+
2366+
Object.freeze(box);
2367+
2368+
const shape = 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.
2389+
22262390
</p>
22272391
</details>

0 commit comments

Comments
 (0)