Samouczek JS

JS DOM Wprowadzenie do JS JS Dokąd Wyjście JS Oświadczenia JS Składnia JS Komentarze JS Zmienne JS JS Let JS Const Operatorzy JS Arytmetyka JS Zadanie JS Typy danych JS Funkcje JS Obiekty JS Wydarzenia JS JS Strings Metody ciągów JS Wyszukiwanie ciągów JS Szablony JS String Numery JS Metody liczbowe JS Tablice JS Metody macierzowe JS Sortowanie tablic JS Iteracja tablicy JS JS Array Const JS Daty Formaty daty JS JS Data Pobierz metody Metody ustawiania daty JS Matematyka JS JS losowo JS Booleans Porównania JS Warunki JS Przełącznik JS Pętla JS dla Pętla JS dla In Pętla JS dla Of Pętla JS, podczas gdy Przerwa JS Iterable JS Zestawy JS Mapy JS Typ JS Konwersja typu JS JS Bitwise JS RegExp Błędy JS Zakres JS JS Podnoszenie Tryb ścisły JS JS to słowo kluczowe Funkcja strzałki JS Klasy JS JS JSON Debugowanie JS Przewodnik po stylu JS Najlepsze praktyki JS Błędy JS Wydajność JS JS słowa zastrzeżone

Wersje JS

Wersje JS JS 2009 (ES5) JS 2015 (ES6) JS 2016 JS 2017 JS 2018 JS IE / Krawędź Historia JS

Obiekty JS

Definicje obiektów Właściwości obiektu Metody obiektowe Wyświetlanie obiektów Akcesoria do obiektów Konstruktorzy obiektów Prototypy obiektów Iterowalne obiekty Zestawy obiektów Mapy obiektów Odniesienie do obiektu

Funkcje JS

Definicje funkcji Parametry funkcji Wywołanie funkcji Wywołanie funkcji Funkcja Zastosuj Zamknięcia funkcji

Klasy JS

Wprowadzenie do zajęć Dziedziczenie klas Klasa statyczna

JS Async

Oddzwaniania JS Asynchroniczny JS JS Obietnice JS Async/Oczekiwanie

JS HTML DOM

Wprowadzenie do DOM Metody DOM Dokument DOM Elementy DOM DOM HTML Formularze DOM DOM CSS Animacje DOM Wydarzenia DOM Odbiornik zdarzeń DOM Nawigacja DOM Węzły DOM Kolekcje DOM Listy węzłów DOM

Zestawienie komponentów przeglądarki JS

Okno JS Ekran JS Lokalizacja JS Historia JS JS Navigator Wyskakujący alert JS Czas JS Pliki cookie JS

JS Web API

Wprowadzenie do internetowego interfejsu API Interfejs API formularzy internetowych Interfejs API historii online API przechowywania danych w sieci Web Web Worker API Internetowy interfejs API pobierania Internetowy interfejs API geolokalizacji

JS AJAX

Wprowadzenie do AJAX AJAX XMLHttp Żądanie AJAX Odpowiedź AJAX Plik XML AJAX AJAX PHP ASP AJAX Baza danych AJAX Aplikacje AJAX Przykłady AJAX

JS JSON

Wprowadzenie do JSON Składnia JSON JSON a XML Typy danych JSON Analiza JSON JSON Obiekty JSON Tablice JSON Serwer JSON JSON PHP JSON HTML JSON JSONP

JS kontra jQuery

Selektory jQuery jQuery HTML jQuery CSS jQuery DOM

Grafika JS

Grafika JS JS płótno JS Działka JS Chart.js Wykres JS Google JS D3.js

Przykłady JS

Przykłady JS JS HTML DOM Wejście JS HTML Obiekty HTML JS Wydarzenia JS HTML Przeglądarka JS Edytor JS Ćwiczenia JS JS Quiz Certyfikat JS

Referencje JS

Obiekty JavaScript Obiekty HTML DOM


Zakres JavaScript

Zakres określa dostępność (widoczność) zmiennych.

JavaScript ma 3 rodzaje zakresu:

  • Zakres blokowy
  • Zakres funkcji
  • Zakres globalny

Zakres bloku

Przed ES6 (2015) JavaScript miał tylko Global Scope i Function Scope .

ES6 wprowadził dwa ważne nowe słowa kluczowe JavaScript: leti const.

Te dwa słowa kluczowe zapewniają zakres bloku w JavaScript.

Do zmiennych zadeklarowanych wewnątrz bloku { } nie można uzyskać dostępu spoza bloku:

Przykład

{
  let x = 2;
}
// x can NOT be used here

Zmienne zadeklarowane varsłowem kluczowym NIE mogą mieć zasięgu blokowego.

Dostęp do zmiennych zadeklarowanych wewnątrz bloku { } można uzyskać spoza bloku.

Przykład

{
  var x = 2;
}
// x CAN be used here

Zakres lokalny

Zmienne zadeklarowane w funkcji JavaScript stają się LOKALNE dla funkcji.

Przykład

// code here can NOT use carName

function myFunction() {
  let carName = "Volvo";
  // code here CAN use carName
}

// code here can NOT use carName

Zmienne lokalne mają zakres funkcji :

Dostęp do nich można uzyskać tylko z poziomu funkcji.

Ponieważ zmienne lokalne są rozpoznawane tylko wewnątrz swoich funkcji, zmienne o tej samej nazwie mogą być używane w różnych funkcjach.

Zmienne lokalne są tworzone podczas uruchamiania funkcji i usuwane po zakończeniu funkcji.


Zakres funkcji

JavaScript ma zasięg funkcji: każda funkcja tworzy nowy zasięg.

Zmienne zdefiniowane wewnątrz funkcji nie są dostępne (widoczne) spoza funkcji.

Zmienne zadeklarowane za pomocą vari letconstdość podobne, gdy są zadeklarowane wewnątrz funkcji.

Wszystkie mają zakres funkcji :

function myFunction() {
  var carName = "Volvo";   // Function Scope
}
function myFunction() {
  let carName = "Volvo";   // Function Scope
}
function myFunction() {
  const carName = "Volvo";   // Function Scope
}

Globalne zmienne JavaScript

Zmienna zadeklarowana poza funkcją staje się GLOBALNA .

Przykład

let carName = "Volvo";
// code here can use carName

function myFunction() {
// code here can also use carName
}

Zmienna globalna ma zasięg globalny :

Wszystkie skrypty i funkcje na stronie internetowej mają do niej dostęp. 


Zakres globalny

Zmienne zadeklarowane globalnie (poza dowolną funkcją) mają zasięg globalny .

Dostęp do zmiennych globalnych można uzyskać z dowolnego miejsca w programie JavaScript.

Zmienne zadeklarowane za pomocą vari letconstdość podobne, gdy są zadeklarowane poza blokiem.

Wszystkie mają zasięg globalny :

var x = 2;       // Global scope
let x = 2;       // Global scope
const x = 2;       // Global scope

Zmienne JavaScript

W JavaScript obiekty i funkcje są również zmiennymi.

Zakres określa dostępność zmiennych, obiektów i funkcji z różnych części kodu.



Automatycznie globalnie

Jeśli przypiszesz wartość do zmiennej, która nie została zadeklarowana, automatycznie stanie się ona zmienną GLOBALNĄ .

Ten przykład kodu zadeklaruje zmienną globalną carName, nawet jeśli wartość jest przypisana wewnątrz funkcji.

Przykład

myFunction();

// code here can use carName

function myFunction() {
  carName = "Volvo";
}

tryb ścisły

Wszystkie nowoczesne przeglądarki obsługują JavaScript w „Trybie ścisłym”.

Więcej o tym, jak używać trybu ścisłego, dowiesz się w kolejnym rozdziale tego samouczka.

W „Trybie ścisłym” niezadeklarowane zmienne nie są automatycznie globalne.


Zmienne globalne w HTML

W przypadku JavaScript zasięgiem globalnym jest środowisko JavaScript.

W HTML zasięgiem globalnym jest obiekt window.

Zmienne globalne zdefiniowane varsłowem kluczowym należą do obiektu window:

Przykład

var carName = "Volvo";
// code here can use window.carName

Zmienne globalne zdefiniowane letsłowem kluczowym nie należą do obiektu window:

Przykład

let carName = "Volvo";
// code here can not use window.carName

Ostrzeżenie

NIE twórz zmiennych globalnych, chyba że zamierzasz.

Twoje zmienne globalne (lub funkcje) mogą nadpisywać zmienne (lub funkcje) okna.
Każda funkcja, w tym obiekt window, może nadpisać twoje globalne zmienne i funkcje.


Czas życia zmiennych JavaScript

Czas życia zmiennej JavaScript rozpoczyna się w momencie jej zadeklarowania.

Zmienne funkcji (lokalne) są usuwane po zakończeniu funkcji.

W przeglądarce internetowej zmienne globalne są usuwane po zamknięciu okna przeglądarki (lub karty).


Argumenty funkcji

Argumenty funkcji (parametry) działają jako zmienne lokalne wewnątrz funkcji.