sobota, 17 maja 2014

Javascript basics - Part 1

Wstęp

Na pewno każdy developer miał styczność z jQuery w mniejszym lub większym stopniu. Tak jak ja, zrobiłem kilka stron www, dla żony, dla znajomych, w których wykorzystywałem jQuery. Jednak tak na prawdę nigdy nie zagłębiałem się w javascript. jQuery jest wspaniałą biblioteką, jednak przyszedł czas aby poznać podstawy javascript. W związku z tym, wziąłem się za zgłębianie tajników tego języka czytając książkę Javascript Patterns. Książkę polecam każdemu, jest ona wspaniałym źródłem wiedzy dla kogoś takiego jak ja, który wcześniej właściwie nie miał styczności z czystym javascript (oczywiście pewne podstawy znałem, których musiałem się nauczyć aby korzystać z jQuery). Seria tych postów zawiera fundamentalne podstawy javascript, które wg. mnie każdy szanujący się developer powinien znać. 

Deklarowanie zmiennych

W javascript, jak można przypuszczać mamy zmienne globalne i lokalne. Jednak trzeba wiedzieć jak poprawnie je deklarować, ponieważ może okazać się, że zmienna, którą chcieliśmy zadeklarować lokalnie okaże się być zmienną globalną (tak tak, też wydawało mi się to nieprawdopodobne).

DEKLAROWANIE ZMIENNYCH LOKALNYCH
Zmienna jest zmienną lokalną gdy jest poprawnie zadeklarowana w ciele funkcji:

function foo(){
    var localVariable = "this is a localVariable";
}

zmienna localVariable w powyższym przykładzie jest zadeklarowana jako zmienna lokalna. Aby poprawnie tworzyć zmienne lokalne musimy zapamiętać następujące 2 zasady:
  • musi być zadeklarowana w ciele funkcji
  • musi być zadeklarowana ze słowem kluczowym var
Są to dwie podstawowe zasady, które musimy zapamiętać. Nic więcej! Sprawa przedstawia się trochę inaczej jeśli chodzi o zmienne globalne!


DEKLAROWANIE ZMIENNYCH GLOBALNYCH
Podstawowa zasada jest prosta, wszystko co jest deklarowane poza funkcją jest zmienna globalną! Jednakże, jest jeszcze inna zasada. Spójrzmy na poniższy przykład:

var globalVariable = "This is global variable";
secondGlobalVariable = "This is second global variable";
function foo(){
   anotherGlobalVariable = "This is another global variable";
}
Wszystko co jest zadeklarowane bez słowa kluczowego var jest zmienną globalną, nawet jeśli zadeklarowane w ciele funkcji! W związku z tym, jakie są przesłanki przy tworzeniu zmiennych globalnych?

  • każda zmienna zadeklarowana ze słowem kluczowym var poza funkcją jest zmienną globalną
  • każda zmienna zadeklarowana bez słowa kluczowego var jest również zmienna globalną (nawet jeśli jest zadeklarowana w ciele funkcji)
WAŻNE
Przy deklarowaniu zmiennych lokalnych należy pamiętać, że każda zmienna lokalna musi  być zadeklarowana ze słowem kluczowych var. Dlaczego jest to takie ważne? Rozważmy następujący przykład:

function foo(){
   var variable1 = variable2 = "Some text";
}
Zmienna variable1 jest zmienna lokalną, jednak zmienna variable2 jest już zmienną globalną! Jeśli chcemy aby obie były zmiennymi lokalnymi należy je zadeklarować następująco:

function foo(){
   var variable1, variable2;
   variable1 = variable2 = "Some text";
}
Tak zadeklarowane będą obie zmiennymi lokalnymi!

Brak komentarzy:

Prześlij komentarz