bonus bonus 20.04.2015, 14:04:20 2 Dlaczego wyświetli się "function" ? Czy to jest związane z hoistingiem?function bar() { return foo; foo = 10; function foo() {} var foo = '11';}console.log(typeof bar());#javascript #programowanie wrrior Cronox
dieow dieow 20.04.2015, 14:08:50 0 @bonus: JS wykonuje się po stronie przeglądarki. Czego się spodziewałeś po `typeof bar()'? Jeśli bar to funkcja?
michak michak 20.04.2015, 14:08:53 0 @bonus: a co ma się wyświetlić jak to jest funkcja? Poza tym wiesz, że nic po return się nie wykona?
filip_k filip_k 20.04.2015, 14:08:59 2 @bonus: Tak, dejfintiwnie z hoistingiem. konto usunięte Redlic
bonus bonus 20.04.2015, 14:11:12 0 @dieow: @michak: nie robię typeof(bar)tylko typeof(bar()) - to różnica
bonus bonus 20.04.2015, 14:12:34 0 @filip_k: tylko, że hoisting jest związany ze zmiennymi, a tutaj jest zwracana funkcja :<
dieow dieow 20.04.2015, 14:16:08 0 @bonus: a co zwraca bar?No tak hoisting. To tak, jest to związane z hoistingiem :)
bonus bonus 20.04.2015, 14:18:32 0 @dieow: czyli hoisting najpierw przenosi deklaracje funkcji, a później zmiennych na początku funkcji?
dieow dieow 20.04.2015, 14:22:09 0 @bonus: Na to wychodzi. Gdybyś zrobił var foo = function(){}; to by zwróciło undefined.To miało jakąś nazwę...
bonus bonus 20.04.2015, 14:22:55 0 @Marmite: tylko ciekawi mnie, że po wyrzuceniu funkcji foo(), return zwraca undefine, czyli js nie przeniósł deklaracji zmiennej foo
M.....L konto usunięte 20.04.2015, 14:23:20 0 @bonus: Javascript zawsze przenosi deklaracje na sam początek funkcji, stąd takie zachowanie. Gdybyś chciał to wykonać w podanej kolejności - foo byłoby undefined.
dieow dieow 20.04.2015, 14:24:10 0 @bonus: deklaracji zmiennych nie przenosi, tylko deklaracje samych funkcji, one są jakby dostępne od początku.
dieow dieow 20.04.2015, 14:27:50 1 @bonus: Tu coś jest o tym https://javascriptweblog.wordpress.com/2010/07/06/function-declarations-vs-function-expressions/ bonus
Marmite Marmite 20.04.2015, 14:28:57 2 @bonus: Oczywiście, ze przeniósł. Dlatego zwraca undefined. Deklaracje są przenoszone, definicje nie bonus konto usunięte
Czy to jest związane z hoistingiem?
function bar() {
return foo;
foo = 10;
function foo() {}
var foo = '11';
}
console.log(typeof bar());
#javascript #programowanie
Komentarz usunięty przez autora
Czego się spodziewałeś po `typeof bar()'? Jeśli bar to funkcja?
nie robię typeof(bar)
tylko typeof(bar()) - to różnica
argumentem jest to co zwróci bar()
No tak hoisting. To tak, jest to związane z hoistingiem :)
To miało jakąś nazwę...
undefined.Komentarz usunięty przez autora