Skip to content

Commit 4e94465

Browse files
authored
Merge pull request #38 from javascript-tutorial/sync-5b195795
Sync with upstream @ 5b19579
2 parents 6291821 + 3cf676c commit 4e94465

File tree

121 files changed

+405
-269
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

121 files changed

+405
-269
lines changed

1-js/01-getting-started/4-devtools/article.md

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,15 @@ Dokładny widok narzędzi deweloperskich zależy od wersji Chrome'a. Narzędzia
2929
- Widzimy treść błędu zapisaną kolorem czerwonym. W tym przypadku skrypt zawiera nieznaną komendę "lalala".
3030
- Po prawej stronie jest klikalny link do źródła `bug.html:12`, z numerem linii kodu, w której błąd wystąpił.
3131

32-
Poniżej treści błędu znajduje się niebieski symbol `>`. Oznacza linię, w której możemy pisać kod JavaScript. Naciśnij `key:Enter`, aby ten kod uruchomić (`key:Shift+Enter` dodaje nowy wiersz).
32+
Poniżej treści błędu znajduje się niebieski symbol `>`. Oznacza linię, w której możemy pisać kod JavaScript. Naciśnij `key:Enter`, aby ten kod uruchomić.
3333

3434
Widzisz już komunikaty błędów i na początek powinno to wystarczyć. W rozdziale pt. "<info:debugging-chrome>" wrócimy do narzędzi deweloperskich, by poznać więcej tajników debuggowania.
3535

36+
```smart header="Multi-line input"
37+
Usually, when we put a line of code into the console, and then press `key:Enter`, it executes.
38+
39+
To insert multiple lines, press `key:Shift+Enter`. This way one can enter long fragments of JavaScript code.
40+
```
3641

3742
## Firefox, Edge i inne
3843

@@ -50,12 +55,6 @@ Otwórz Preferencje i przejdź do zakładki "Zaawansowane". Zaznacz na samym dol
5055

5156
Teraz, gdy naciśniesz `key:Cmd+Opt+C`, otworzysz konsolę. Warto dodać, że w górnym pasku menu pojawiła się nowa pozycja o nazwie "Programowanie". Ma w sobie wiele funkcji i opcji konfiguracyjnych.
5257

53-
## Wpisywanie w wielu wierszach
54-
55-
Zazwyczaj gdy wprowadzamy kod JavaScript w konsoli i naciśniemy klawisz `key:Enter`, wykona się on od razu.
56-
57-
Aby wstawić kod, który ma kilka linii, wystarczy wcisnąć na końcu linii klawisz `key:Shift+Enter`, aby przejść do następnej.
58-
5958
## Podsumowanie
6059

6160
- Narzędzia deweloperskie pozwalają podejrzeć błędy, uruchomić komendy javascriptowe, sprawdzać zmienne i wiele, wiele innych.

1-js/02-first-steps/05-types/article.md

Lines changed: 28 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ message = 123456;
1010

1111
Część języków programowania stosuje tak zwane "dynamiczne typowanie", które oznacza, że typy danych zmiennych mogą zmienić się w trakcie działania programu.
1212

13-
Wyróżniamy 7 podstawowych typów danych w JavaScripcie. Przedstawimy je teraz ogólnie, w następnych rozdziałach omówimy bardziej szczegółowo.
13+
Wyróżniamy 8 podstawowych typów danych w JavaScripcie. Przedstawimy je teraz ogólnie, w następnych rozdziałach omówimy bardziej szczegółowo.
1414

1515
## Typ liczbowy
1616

@@ -62,14 +62,33 @@ Specjalne wartości liczbowe formalnie należą do typu "liczbowego". Oczywiści
6262

6363
Więcej informacji o pracy z liczbami zawarte jest w rozdziale pt. "<info:number>".
6464

65+
## BigInt
66+
67+
W JavaScripcie typ liczbowy nie może reprezentować liczb całkowitych większych od <code>2<sup>53</sup></code> (ani ujemnych mniejszych od <code>-2<sup>53</sup></code>) ze względu na ograniczenia techniczne narzucone przez jego reprezentację wewnętrzną. Daje to liczby o długości około 16 cyfr, co w większości przypadków wystarcza. Jednak czasami potrzebujemy skorzystać z naprawdę dużych liczb, np. w krytografii czy znaczników czasowych z dokładnością do mikrosekund.
68+
69+
Typ `BigInt` został niedawno dodany do języka i reprezentuje liczby całkowite o dowolnej długości.
70+
71+
`BigInt` tworzy się poprzez dodanie `n` na końcu liczby:
72+
73+
```js
74+
// "n" na końcu oznacza, że to liczba typu BigInt
75+
const bigInt = 1234567890123456789012345678901234567890n;
76+
```
77+
78+
Z racji tego, że liczby typu `BigInt` są rzadko stosowane, poświęciliśmy im osobny rozdział pt. "<info:bigint>".
79+
80+
```smart header="Problemy z kompatybilnością"
81+
Aktualnie dla typu `BigInt` wsparcie posiadają przeglądarki Firefox i Chrome. Brakuje go w Safari/IE/Edge.
82+
```
83+
6584
## Typ tekstowy
6685

6786
Ciąg znaków (ang. *string*), zwany także "literałem znakowym" lub "napisem", to typ tekstowy, który zapisujemy przy użyciu cudzysłowów.
6887

6988
```js
7089
let str = "Witaj";
7190
let str2 = 'Można użyć także apostrofów';
72-
let phrase = `Można dołączyć zmienną ${str}`;
91+
let phrase = `Można dołączyć dodatkową zmienną ${str}`;
7392
```
7493

7594
W JavaScripcie istnieją 3 typy cudzysłowów.
@@ -78,7 +97,7 @@ W JavaScripcie istnieją 3 typy cudzysłowów.
7897
2. Apostrofy: `'Witaj'`.
7998
3. Grawisy (ang. *backtick*): <code>&#96;Witaj&#96;</code>.
8099

81-
W JavaScripcie nie ma różnicy między cudzysłowami a apostrofami.
100+
Pojedyncze i podwójne cudzysłowy są cudzysłowami prostymi. W JavaScripcie nie ma między nimi żadnej różnicy.
82101

83102
Grawisy są "rozszerzeniem funkcjonalności" zwykłych apostrofów i cudzysłowów. Pozwalają na dodanie zmiennej i wyrażeń do ciągu znaków poprzez umieszczenie ich wewnątrz `${}`, przykładowo:
84103

@@ -102,12 +121,12 @@ alert( "Wynik to ${1 + 2}" ); // Wynik to ${1 + 2} (cudzysłów traktuje ${…}
102121
Więcej o ciągach znaków można przeczytać w rozdziale pt. "<info:string>".
103122

104123
```smart header="JavaScript nie posiada typu *znakowego*."
105-
W niektórych językach istnieje specjalny typ "znakowy", używany do przechowywania pojedynczych znaków. Przykładowo, w językach C i Java możemy użyć typu `char`.
124+
W niektórych językach istnieje specjalny typ "znakowy", używany do przechowywania pojedynczych znaków. Przykładowo, w językach C i Java możemy użyć typu o nazwie "char".
106125
107126
W JavaScripcie nie ma takiego typu. Mamy do dyspozycji jedynie `string`. Ciąg znaków może być pusty albo zawierać jeden i więcej znaków.
108127
```
109128

110-
## Typ logiczny
129+
## Typ logiczny (boolean)
111130

112131
Typ logiczny (ang. *boolean*) posiada dwie wartości: `true` (prawda) lub `false` (fałsz).
113132

@@ -198,6 +217,8 @@ typeof undefined // "undefined"
198217

199218
typeof 0 // "number"
200219

220+
typeof 10n // "bigint"
221+
201222
typeof true // "boolean"
202223

203224
typeof "coś" // "string"
@@ -226,9 +247,10 @@ Ostatnie trzy linijki wymagają dodatkowego wyjaśnienia.
226247

227248
## Podsumowanie
228249

229-
W JavaScripcie wyróżniamy 7 podstawowych typów danych.
250+
W JavaScripcie wyróżniamy 8 podstawowych typów danych.
230251

231252
- `number` dla wszystkich liczb: całkowitych lub zmiennoprzecinkowych.
253+
- `bigint` dla liczb całkowitych o dowolnej długości.
232254
- `string` dla ciągów znaków. Może być pusty albo zawierać jeden czy więcej znaków; nie ma oddzielnego typu dla pojedynczego znaku.
233255
- `boolean` dla `true`/`false` (prawda/fałsz).
234256
- `null` dla pustych wartości -- autonomiczny typ, który posiada jedną wartość: `null`.

1-js/02-first-steps/06-type-conversions/article.md

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -80,18 +80,7 @@ alert( Number(false) ); // 0
8080

8181
Zauważ, że `null` i `undefined` zachowują się inaczej. `null` jest konwertowany do zera, a `undefined` do `NaN`.
8282

83-
````smart header="Operator '+' łączy ciągi znaków"
84-
Większość operacji matematycznych rzutuje wartości do typu liczbowego. Jedynym wyjątkiem jest `+`. Jeśli jedna z dodawanych wartości będzie typu tekstowego, druga również jest rzutowana do typu tekstowego.
85-
86-
Wtedy następuje ich konkatenacja (połączenie):
87-
88-
```js run
89-
alert( 1 + '2' ); // '12' (tekst po prawej)
90-
alert( '1' + 2 ); // '12' (tekst po lewej)
91-
```
92-
93-
Dzieje się tak w sytuacji, gdy przynajmniej jeden z argumentów jest typu tekstowego. W przeciwnym wypadku wartości są rzutowane na typ liczbowy.
94-
````
83+
Większość operatorów matematycznych także wykonuje taką konwersję. Więcej na ten temat dowiesz się z kolejnego rozdziału.
9584

9685
## Rzutowanie do typu logicznego
9786

1-js/02-first-steps/06-type-conversions/1-primitive-conversions-questions/solution.md renamed to 1-js/02-first-steps/07-operators/3-primitive-conversions-questions/solution.md

File renamed without changes.

1-js/02-first-steps/06-type-conversions/1-primitive-conversions-questions/task.md renamed to 1-js/02-first-steps/07-operators/3-primitive-conversions-questions/task.md

File renamed without changes.

1-js/02-first-steps/08-comparison/1-comparison-questions/solution.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ null === +"\n0\n" → false
1313
Some of the reasons:
1414

1515
1. Obviously, true.
16-
2. Dictionary comparison, hence false.
16+
2. Dictionary comparison, hence false. `"a"` is smaller than `"p"`.
1717
3. Again, dictionary comparison, first char of `"2"` is greater than the first char of `"1"`.
1818
4. Values `null` and `undefined` equal each other only.
1919
5. Strict equality is strict. Different types from both sides lead to false.
Lines changed: 1 addition & 1 deletion
Loading

1-js/03-code-quality/01-debugging-chrome/chrome-open-sources.svg

Lines changed: 1 addition & 1 deletion
Loading

1-js/03-code-quality/01-debugging-chrome/chrome-sources-breakpoint.svg

Lines changed: 1 addition & 1 deletion
Loading

1-js/03-code-quality/01-debugging-chrome/chrome-sources-debugger-trace-1.svg

Lines changed: 1 addition & 1 deletion
Loading

0 commit comments

Comments
 (0)