Pokaż wyniki 1 do 3 z 3

Temat: JavaScript, zmienne lokalne, dziwne wyniki

  1. #1

    Domyślnie JavaScript, zmienne lokalne, dziwne wyniki

    Hej.
    Poniżej podaje dwa przykłady, czy ktoś jest w stanie wyjaśnić dlaczego zachowują się one w tak niespodziewany sposób?

    Kod:
    var foo = 'bar'
    var func = function(){
    	alert(foo)
    	return
    	var foo = 'foo'
    }
    func()
    // wynik: undefined
    // oczekiwalem: bar
    Kod:
    var foo = 'bar'
    var func = function(){
    	alert(foo)
    	return
    	var foo
    }
    func()
    // wynik: undefined
    // oczekiwalem: bar
    Dla porównania:
    Kod:
    var foo = 'bar'
    var func = function(){
    	alert(foo)
    	return
    	// var foo
    }
    func()
    // wynik: bar
    // oczekiwalem: bar
    Ostatnio edytowane przez lame2 : 08-24-2013 - 20:49

  2. #2

    Domyślnie

    Czyli co, to za trudne dla najlepszych hakerów w Polsce? :/

  3. #3
    Zarejestrowany
    Sep 2013
    Skąd
    Szczecin
    Postów
    1

    Domyślnie

    Zapoznaj się z pojęciem hoisting-u.
    Ogólnie zmienne są w każdej funkcji (w obszarze globalnym też) "wynoszone" na górę.
    A dokładnie to wynoszona jest ich deklaracja (czyli tak jakby były zadeklarowane na górze).

Zasady Postowania

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •  
Subskrybuj