Oto lista zagadnień, które warto powtórzyć przed warsztatem, oraz tematów fakultatywnych do zgłębiania we własnym zakresie.
<aside>
💡 W poniższych przykładach używamy ..
(dwóch kropek) do zaznaczenia miejsc, w których kod został pominięty. Nie mylić z ...
(trzema kropkami), czyli ze spread operator, który jest poprawną składnią JS.
</aside>
Tematy, których rozumienie przyda się w trakcie warsztatu. Najlepiej mieć już z nimi trochę doświadczenia. Postaramy się nie spędzać na nich zbyt dużo czasu.
if .. else
i predykaty
foo < 0
, foo <= 0
foo === 0
, foo !== 0
if (foo)
sprawdza, czy foo
jest truthy czy falsy
0
i ""
(pusty string) są falsy.arr.length > 0
.for (let elem of array)
for (let i = 0; i < array.length; i++)
arr[0]
, arr[i]
obj.prop
to to samo co obj["prop"]
a = "prop"
, to można też napisać obj[a]
let foo = ..
, foo(..)
, itd.)arg => expression
albo arg => { .. }
.(arg1, arg2) => ..
.() => ..
.undefined
(lub kiedy nie został przekazany; wtedy też jest undefined
), parametr przyjmie domyślną wartość zdefiniowaną po znaku =
.function foo(arg = 1) { .. }
Math.random()
<m, n)
.
m + Math.random() * (n - m)
boolean
, number
, string
,Klasa
, Interfejs
{foo: number}
fn(obj: {foo: number})
, co oznacza, że funkcja bierze jako pierwszy argument obiekt, który musi przynajmniej mieć własność foo
, która jest liczbąArray<number>
number[]
let foo: number = 1;
square(x: number): number
let foo = 1;
foo
jest tutaj typu number
.interface Foo {prop?: number}
to to samo co:interface Foo {prop: number | undefined}
enum
to sposób na używanie czytelnych nazw dla pewnych stałych, głównie liczbowych.
enum DrawKind {Rect, Circle}
DrawKind.Rect
ma tutaj wartość 0
.[DrawKind.Circle](<http://drawkind.Circle>)
ma wartość 1
.enum DrawKind {Rect = 4, Circle}
.DrawKind.Rect
ma tutaj wartość 4
.[DrawKind.Circle](<http://drawkind.Circle>)
ma wartość 5
(kolejną liczbę całkowitą).