język:

Articles on optimization by Adrian Kalbarczyk

„Połową sukcesu jest umiejętność zadania trafnego pytania”

, by unknown

Kurs JavaScript: Zmienne

Zmiennym można przypisać dowolny obiekt lub też wyrażenie generujące ten obiekt. W JavaScript funkcja także jest obiektem (ściślej jest obywatelem pierwszej klasy) i zawsze jest wartością pewnej wartości, chyba że jest anonimowa. Więcej o funkcjach w rozdziale "Funkcje".

Zmienne globalne

Domyślnym zasięgiem zmiennych jest obiekt główny. Innymi słowy domyślnie tworzone są zmienne globalne. Aby utworzyć taką zmienną wystarczy użyć jej nazwy w dowolnym miejscu kodu:

zmienna="napis"

Z powodów optymalizacyjnych oraz ze względu na specyfikę programów pisanych w JavaScript należy minimalizować liczbę zmiennych globalnych, idealnie do jednej.

Słowo kluczowe var

Zmienne lokalne deklarowane są poprzez słowo kluczowe var. Widoczność zmiennych lokalnych jest ograniczona do części bloku po deklaracji oraz każdego bloku w nim zawartego włącznie ze wszystkimi blokami wewnątrz funkcji zagnieżdżonych. Nie jest możliwy dostęp do tych zmiennych spoza bloku. Kod:

b=function()
{
    var a=function()
    {
        alert(x)
    }
    var x=2
    a()
}
b()

wypisze 2. Funkcja a jest widoczna tylko wewnątrz funkcji b. Jak widać znacząca jest kolejność wykonania instrukcji a nie kolejność instrukcji w kodzie.

var może przyjmować wiele deklaracji oddzielonych przecinkiem. Zmiennym tym można nadawać wartości. Przykład złożonej deklaracji:

var a,
    b=2,
    c=(b===2) ? 1 : 3,
    d=null,
    e=d || {},
    f=function(x,y){return x+y},
    g=function(x,y){return x+y}(b,c)

Wartości i referencje

Niektóre obiekty w JavaScript są przekazywane przez wartości inne przez referencje. Te pierwsze nazwiemy obiektami o typie prostym, natomiast pozostałe o typie złożonym. Warto rozróżnić te dwie klasy obiektów ponieważ w zaawansowanych programach bardzo łatwo jest zrobić błąd przy przypisaniach. Więcej na ten temat w "Operator przypisania".

Zmiana wartości typu prostego zmienia wartość, a referencji tylko tą referencję nie ruszając wartości. Nie ma możliwości zbadania czy zmienna jest wartością czy referencją. Jedynym sposobem jest przeczytanie w dokumentacji jak się zachowuje obiekt dostarczony przez środowisko. Zazwyczaj tablice oraz wszystkie obiekty użytkownika są przekazywane przez referencje, a pozostałe przez wartość.

Zgłoś błąd na tej stronie
Zgłoś błąd na tej stronie
Here you can let me know about errors on page. Reporting misspelings, grammar errors are very welcomed. If you are experiencing serious site bug please write how it is reproducable. You don't need to fill any of these fields!