[Script Info] Title: [Events] Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text Dialogue: 0,0:00:00.76,0:00:03.20,Default,,0000,0000,0000,,Opanowaliście już podstawy funkcji, Dialogue: 0,0:00:03.30,0:00:07.34,Default,,0000,0000,0000,,a teraz pomówmy o czymś\Ntrochę trudniejszym: Dialogue: 0,0:00:07.44,0:00:11.38,Default,,0000,0000,0000,,o różnicy między zmiennymi\Nlokalnymi i globalnymi. Dialogue: 0,0:00:11.48,0:00:14.06,Default,,0000,0000,0000,,Może nie znacie tych terminów. Dialogue: 0,0:00:14.16,0:00:16.30,Default,,0000,0000,0000,,Zacznijmy od przykładu. Dialogue: 0,0:00:16.40,0:00:20.38,Default,,0000,0000,0000,,Napisałam program, który pokaże,\Nile cali urosłam w dzieciństwie. Dialogue: 0,0:00:20.48,0:00:24.47,Default,,0000,0000,0000,,Ludzie rosną w różnym tempie.\NWymyśliłam funkcję, „calcInches”, Dialogue: 0,0:00:24.57,0:00:29.35,Default,,0000,0000,0000,,gdzie wprowadzam wiek startowy\Ni końcowy oraz cale rocznie. Dialogue: 0,0:00:29.45,0:00:34.71,Default,,0000,0000,0000,,Program oblicza, ile urosłam\Nw danym okresie Dialogue: 0,0:00:34.81,0:00:37.38,Default,,0000,0000,0000,,i podaje wynik. Dialogue: 0,0:00:37.48,0:00:40.38,Default,,0000,0000,0000,,Tu jest okres od 0 do 8 lat. Dialogue: 0,0:00:40.48,0:00:44.60,Default,,0000,0000,0000,,Przywołuję „calcInches”\Ni wprowadzam 0, 8 oraz 2,5. Dialogue: 0,0:00:44.70,0:00:48.23,Default,,0000,0000,0000,,Ponieważ rosłam\Njakieś 2,5 cala rocznie. Dialogue: 0,0:00:48.33,0:00:52.20,Default,,0000,0000,0000,,Program oblicza i podaje wynik: 20. Dialogue: 0,0:00:52.30,0:00:58.12,Default,,0000,0000,0000,,Teraz okres od 8. do 16. roku.\NWprowadzam 8, 16 i 2, Dialogue: 0,0:00:58.22,0:01:01.73,Default,,0000,0000,0000,,bo wtedy tak szybko nie rosłam.\NWynik: 16. Dialogue: 0,0:01:01.83,0:01:05.38,Default,,0000,0000,0000,,Świetnie, ale chcę pokazać, Dialogue: 0,0:01:05.48,0:01:08.68,Default,,0000,0000,0000,,o ile cali urosłam\Nw całym dzieciństwie. Dialogue: 0,0:01:08.78,0:01:11.40,Default,,0000,0000,0000,,Jak to zrobić? Dialogue: 0,0:01:11.50,0:01:15.05,Default,,0000,0000,0000,,Spojrzę na program i pomyślę: Dialogue: 0,0:01:15.15,0:01:17.07,Default,,0000,0000,0000,,„Jakie mam tu wartości?”. Dialogue: 0,0:01:17.17,0:01:20.41,Default,,0000,0000,0000,,Czy coś może pokazywać\Ncałkowitą liczbę cali? Dialogue: 0,0:01:20.51,0:01:24.17,Default,,0000,0000,0000,,Mam zmienną „totalInches”\N(całkowita liczba cali) Dialogue: 0,0:01:24.27,0:01:26.33,Default,,0000,0000,0000,,wewnątrz funkcji „calcInches”, Dialogue: 0,0:01:26.43,0:01:30.44,Default,,0000,0000,0000,,więc mogę zobaczyć,\Nco tu jest. Zacznę tutaj. Dialogue: 0,0:01:30.54,0:01:35.94,Default,,0000,0000,0000,,Wpiszmy „totalInches, 10, 200”\Ni umieśćmy to na dole. Dialogue: 0,0:01:36.04,0:01:39.06,Default,,0000,0000,0000,,Co mamy? Dialogue: 0,0:01:39.16,0:01:40.94,Default,,0000,0000,0000,,Pokazał się ludzik „O, nie!”. Dialogue: 0,0:01:41.04,0:01:43.03,Default,,0000,0000,0000,,Mówi, że jest problem: Dialogue: 0,0:01:43.13,0:01:45.40,Default,,0000,0000,0000,,„totalInches” niezdefiniowane! Dialogue: 0,0:01:45.50,0:01:49.78,Default,,0000,0000,0000,,Dziwne. Przecież to definiowaliśmy. Dialogue: 0,0:01:49.88,0:01:51.62,Default,,0000,0000,0000,,„var totalInches =”. Dialogue: 0,0:01:51.72,0:01:54.43,Default,,0000,0000,0000,,Kłopot polega na tym,\Nże określiliśmy Dialogue: 0,0:01:54.53,0:01:59.44,Default,,0000,0000,0000,,„totalInches” wewnątrz funkcji.\NW tym wierszu. Dialogue: 0,0:01:59.54,0:02:02.09,Default,,0000,0000,0000,,Zmienna, którą określimy w funkcji, Dialogue: 0,0:02:02.19,0:02:04.25,Default,,0000,0000,0000,,to tzw. zmienna lokalna. Dialogue: 0,0:02:05.06,0:02:08.89,Default,,0000,0000,0000,,Żyje tylko w tej funkcji. Dialogue: 0,0:02:08.99,0:02:11.96,Default,,0000,0000,0000,,Program poza funkcją Dialogue: 0,0:02:12.06,0:02:15.37,Default,,0000,0000,0000,,nie widzi zmiennych lokalnych\Nwewnątrz niej. Dialogue: 0,0:02:15.47,0:02:18.14,Default,,0000,0000,0000,,Widzi tylko to,\Nco zostanie zwrócone. Dialogue: 0,0:02:18.24,0:02:21.34,Default,,0000,0000,0000,,Widzi tę wartość, ale nie zmienną. Dialogue: 0,0:02:21.44,0:02:24.68,Default,,0000,0000,0000,,Gdy próbujemy użyć\N„totalInches” poza funkcją, Dialogue: 0,0:02:24.78,0:02:26.100,Default,,0000,0000,0000,,program nie wie, co to jest i mówi: Dialogue: 0,0:02:27.10,0:02:30.91,Default,,0000,0000,0000,,„Nie znam tej zmiennej.\NNie jest zdefiniowana, nie pokażę jej”. Dialogue: 0,0:02:32.28,0:02:37.22,Default,,0000,0000,0000,,Jest sposób, żeby program\Nna zewnątrz widział zmienną. Dialogue: 0,0:02:37.32,0:02:42.80,Default,,0000,0000,0000,,Robimy ze zmiennej lokalnej\N- globalną. Dialogue: 0,0:02:42.90,0:02:47.25,Default,,0000,0000,0000,,Musimy przesunąć definicję\Npoza funkcję, Dialogue: 0,0:02:47.35,0:02:50.11,Default,,0000,0000,0000,,do zakresu globalnego. Dialogue: 0,0:02:51.27,0:02:54.64,Default,,0000,0000,0000,,Teraz, wewnątrz funkcji, Dialogue: 0,0:02:54.74,0:02:58.33,Default,,0000,0000,0000,,zmieniamy tylko wartość.\NNie określamy funkcji. Dialogue: 0,0:02:58.43,0:03:02.58,Default,,0000,0000,0000,,Jak widać, tu mówi:\N„całkowity wzrost - 16”. Dialogue: 0,0:03:02.68,0:03:06.55,Default,,0000,0000,0000,,Program znalazł zmienną,\Nbo stała się globalna. Dialogue: 0,0:03:06.65,0:03:09.54,Default,,0000,0000,0000,,Ale nie jest to wartość,\Nktórej szukamy. Dialogue: 0,0:03:09.64,0:03:11.36,Default,,0000,0000,0000,,Tylko wartość najświeższa. Dialogue: 0,0:03:11.46,0:03:13.79,Default,,0000,0000,0000,,Bo zawsze, gdy przywołujemy funkcję, Dialogue: 0,0:03:13.89,0:03:17.76,Default,,0000,0000,0000,,stosuje „totalInches”\Ndo tego, co akurat liczy. Dialogue: 0,0:03:18.95,0:03:21.97,Default,,0000,0000,0000,,Chcemy więc mieć nową zmienną, Dialogue: 0,0:03:22.07,0:03:24.96,Default,,0000,0000,0000,,w której będzie się zawierać\Ntylko całkowita suma Dialogue: 0,0:03:25.06,0:03:29.14,Default,,0000,0000,0000,,zwiększająca się\Nprzy każdym obliczaniu. Dialogue: 0,0:03:29.24,0:03:32.83,Default,,0000,0000,0000,,Zamieńmy to z powrotem\Nna zmienną lokalną, Dialogue: 0,0:03:33.95,0:03:37.99,Default,,0000,0000,0000,,zróbmy nową zmienną globalną\No nazwie „lifeInches” Dialogue: 0,0:03:38.09,0:03:39.85,Default,,0000,0000,0000,,i zacznijmy od zera. Dialogue: 0,0:03:40.63,0:03:45.23,Default,,0000,0000,0000,,Wewnątrz funkcji\Ndodamy coś do zmiennej globalnej Dialogue: 0,0:03:45.33,0:03:49.33,Default,,0000,0000,0000,,pisząc: „lifeInches += totalInches”. Dialogue: 0,0:03:49.48,0:03:53.22,Default,,0000,0000,0000,,Dodamy sumę obliczoną\Nprzy każdym przywołaniu funkcji. Dialogue: 0,0:03:53.32,0:03:56.24,Default,,0000,0000,0000,,Dodamy ją do zmiennej globalnej\N„lifeInches”. Dialogue: 0,0:03:56.34,0:04:00.05,Default,,0000,0000,0000,,I wynik wyświetli się u dołu. Dialogue: 0,0:04:00.15,0:04:03.32,Default,,0000,0000,0000,,Jest! Całkowity przyrost. Dialogue: 0,0:04:03.42,0:04:06.48,Default,,0000,0000,0000,,Nie tyle mam wzrostu.\NJestem wyższa. Dialogue: 0,0:04:06.58,0:04:10.80,Default,,0000,0000,0000,,Bo rodzimy się mając więcej\Nniż 0 cali długości. Dialogue: 0,0:04:10.90,0:04:13.93,Default,,0000,0000,0000,,Żeby uzyskać całość, zacznę od 20. Dialogue: 0,0:04:14.03,0:04:16.100,Default,,0000,0000,0000,,I tyle mam wzrostu. Dialogue: 0,0:04:17.10,0:04:18.74,Default,,0000,0000,0000,,No dobrze, powtórzmy. Dialogue: 0,0:04:18.84,0:04:22.01,Default,,0000,0000,0000,,„TotalInches” to zmienna lokalna. Dialogue: 0,0:04:22.11,0:04:24.64,Default,,0000,0000,0000,,Wiemy to, bo widzimy ją Dialogue: 0,0:04:24.74,0:04:27.70,Default,,0000,0000,0000,,wewnątrz tej funkcji,\Na nie poza nią. Dialogue: 0,0:04:28.52,0:04:30.95,Default,,0000,0000,0000,,Tzn., że ten kod na zewnątrz Dialogue: 0,0:04:31.05,0:04:34.67,Default,,0000,0000,0000,,nie wie o zmiennej „totalInches”. Dialogue: 0,0:04:34.77,0:04:37.66,Default,,0000,0000,0000,,A „lifeInches”\Nto tzw. zmienna globalna. Dialogue: 0,0:04:37.76,0:04:41.05,Default,,0000,0000,0000,,Wiemy to, bo widzimy ją\Npoza funkcjami, Dialogue: 0,0:04:41.15,0:04:42.94,Default,,0000,0000,0000,,w naszym zakresie globalnym. Dialogue: 0,0:04:44.03,0:04:47.25,Default,,0000,0000,0000,,Pamiętajcie o tym, określając\Nfunkcje i zmienne. Dialogue: 0,0:04:47.35,0:04:51.62,Default,,0000,0000,0000,,I pomyślcie, czy chcecie mieć zmienną\Nlokalną tylko dla swojej funkcji, Dialogue: 0,0:04:51.72,0:04:54.89,Default,,0000,0000,0000,,czy globalną dla całego programu. Dialogue: 0,0:04:54.99,0:04:57.40,Default,,0000,0000,0000,,Nie szkodzi,\Nże nie do końca rozumiecie. Dialogue: 0,0:04:57.50,0:05:01.60,Default,,0000,0000,0000,,To jedno z najtrudniejszych pojęć\Nw programowaniu, głównie w JavaScript. Dialogue: 0,0:05:01.70,0:05:04.61,Default,,0000,0000,0000,,Ćwiczcie, a będzie wam wychodzić\Ncoraz lepiej!