0:00:00.957,0:00:03.759 Inne fajne zastosowanie[br]JS na stronach 0:00:03.807,0:00:06.777 to animacja właściwości w czasie. 0:00:06.835,0:00:08.544 Zanim się do tego zabierzemy, 0:00:08.575,0:00:11.609 upewnię się,[br]że znacie inną globalną zmienną 0:00:11.700,0:00:16.135 dostępną na każdej stronie[br]internetowej - zmienną "window". 0:00:16.872,0:00:21.478 Wpiszę "console.log",[br]a wy możecie zatrzymać odtwarzanie, 0:00:21.578,0:00:25.632 otworzyć narzędzia deweloperskie[br]i zobaczyć, co tam jest. 0:00:27.038,0:00:32.905 Widzieliście? To jest olbrzymie![br]Tyle tam kodu, że aż szok! 0:00:33.761,0:00:35.480 Żebyście się z tym oswoili, 0:00:35.577,0:00:40.165 powiem o właściwościach i metodach,[br]do których jest stamtąd dostęp. 0:00:40.265,0:00:43.460 Jest tu "window.location", 0:00:43.560,0:00:46.881 zawierające informacje o URL strony. 0:00:48.227,0:00:50.537 Zresztą napiszę to na stronie, 0:00:50.637,0:00:54.350 żebyście nie musieli[br]co chwilę zatrzymywać odtwarzania. 0:00:54.450,0:00:56.029 Zatem: "textContent"... 0:00:56.130,0:01:00.000 i napiszemy, że URL tej strony 0:01:00.055,0:01:04.443 to "window.location".[br]I że to jest obiekt, 0:01:04.581,0:01:08.173 więc musimy do niego wejść.[br]Piszę: "href". 0:01:08.353,0:01:13.328 I już: to jest URL zawartej tu[br]strony internetowej. 0:01:14.628,0:01:17.972 Inna właściwość to[br]"window.navigator.user.agent". 0:01:18.021,0:01:23.011 Mówi o przeglądarce użytkownika. 0:01:23.456,0:01:25.503 Wpiszę: "the browser"... 0:01:25.603,0:01:31.742 nazwiemy ją "the user agent", dalej:[br]"is + window.navigator.user agent". 0:01:32.926,0:01:38.708 No dobrze. Ten ciąg "user agent"[br]pewnie wydaje się wam wariacki. 0:01:38.820,0:01:41.842 Nie został stworzony po to,[br]by czytali go ludzie; 0:01:41.960,0:01:46.045 nie zawsze ma sens.[br]Z przyczyn historycznych. 0:01:46.145,0:01:49.158 Większość projektantów stron[br]korzysta z bibliotek, 0:01:49.258,0:01:51.943 żeby zrozumieć, co oznacza ten ciąg, 0:01:52.029,0:01:55.008 jaka jest przeglądarka,[br]system operacyjny itp. 0:01:55.108,0:01:57.098 Bo to bardzo dziwne. 0:01:59.049,0:02:02.787 A to już takie dziwne nie jest:[br]"window.outerWidth" 0:02:02.887,0:02:05.016 i "window.outerHeight". 0:02:05.116,0:02:07.331 Powiedzmy, 0:02:10.031,0:02:13.236 że ta strona internetowa ma 0:02:13.336,0:02:16.788 "window.outerWidth"...[br]zaczniemy od szerokości... 0:02:16.846,0:02:20.550 ...i "window.outerHeight". 0:02:21.157,0:02:24.520 U mnie to jest 1280 na 715, 0:02:24.620,0:02:26.935 ale u was może być inaczej. Zależy, 0:02:27.035,0:02:31.717 jak wygląda wasza strona internetowa,[br]gdy oglądacie ten film. 0:02:31.812,0:02:35.364 Teraz pokażę wam coś zaskakującego. 0:02:35.489,0:02:40.008 Skasuję słowo "window"[br]w tej linii kodu. 0:02:42.694,0:02:47.382 I... nadal działa! 0:02:47.866,0:02:52.686 Ponieważ "window" to domyślna globalna[br]zmienna na stronach internetowych. 0:02:52.786,0:02:56.280 Przeglądarka szuka[br]używanej przez was zmiennej 0:02:56.380,0:02:59.838 w obiekcie "window", 0:02:59.936,0:03:03.182 a kiedy stworzycie[br]nową zmienną globalną, 0:03:03.277,0:03:07.849 obiekt "window"[br]będzie ją przechowywał jako własność. 0:03:07.895,0:03:13.004 Nie powinniście deklarować własnych[br]zmiennych "outerWidth" i "outerHeight", 0:03:13.099,0:03:17.810 bo anulują one "window.outerWidth"[br]i "window.outerHeight". 0:03:17.964,0:03:21.642 Generalnie, powinniście unikać[br]zmiennych globalnych, 0:03:21.689,0:03:24.645 bo jest ryzyko,[br]że będą kolidować między sobą 0:03:24.691,0:03:27.284 albo ze zmiennymi w obiekcie "window". 0:03:27.370,0:03:31.519 Dla bezpieczeństwa możecie dodawać[br]do globalnych zmiennych prefiksy. 0:03:31.619,0:03:35.514 Np. w Khan Academy piszemy "KA_" 0:03:35.637,0:03:39.266 przed każdą zmienną globalną,[br]która jest nam potrzebna. 0:03:39.393,0:03:41.982 Dobrze.[br]To więc jest obiekt "window". 0:03:42.026,0:03:46.928 Wkrótce zobaczycie, jak za pomocą[br]dwu funkcji można w nim robić animacje.