Dlaczego poniższy kod jest poprawny:
const before=()=>{
console.log(after())
}
const after= props=>{
return 4;
}
before()
A poniższy wywala błąd?
console.log(z);
const z = 4;
Dlaczego poniższy kod jest poprawny:
const before=()=>{
console.log(after())
}
const after= props=>{
return 4;
}
before()
A poniższy wywala błąd?
console.log(z);
const z = 4;
bo w 1 wszystko jest dostepne, a w 2 "z" nie istnieje gdy o nią wołasz.
W drugim przypadku usiłujesz odwołać się do zmiennej, której wartości jeszcze nie zdefiniowałeś.
W pierwszym przypadku tworzysz po prostu i uruchamiasz dwie funkcje:
function before() {
console.log(after());
}
function after(props) {
return 4;
}
before();
I odwołujesz się do nich już po ich zadeklarowaniu, ale JS najpierw wczytuje funkcje, a później dopiero wykonuje goły kod, więc poniższe też zadziała:
before();
function before() {
console.log(after());
}
function after(props) {
return 4;
}
Chyba, że zechcesz zadeklarować funkcje jak zmienne:
before();
var before = function() {
console.log(after());
}
var after = function(props) {
return 4;
}
To wtedy musisz się do nich odwoływać, po kolei, jak do zmiennych.
Aha dobra lol. Jak popatrzyłem na 3 przypadek to zauważyłem że before() jest na samym końcu i to od niego zaczyna się wywołanie. Dużo różnych przypadków robiłem i jakoś mi się tak bardzo pomieszało że nie zauważyłem. Sorki panowie programisty. ;0--0
bartek164 napisał(a):
Sorki panowie programisty. ;0--0
*ogląda się za siebie (przez oba ramiona jednocześnie)*
Jak już jesteśmy w temacie, to mam inną zagwozdkę, ogarnij ten kod :)
function abc() {
console.log(x);
console.log(x);
}
function def() {
console.log(y);
var y = 2;
console.log(y);
}
x = 1;
abc();
y = 1;
def();
Freja Draco napisał(a):
Jak już jesteśmy w temacie, to mam inną zagwozdkę, ogarnij ten kod :)
function abc() { console.log(x); console.log(x); } function def() { console.log(y); var y = 2; console.log(y); } x = 1; abc(); y = 1; def();
Jeśli gdziekolwiek w funkcji(nawet na końcu) zainicjujesz zmienną lokalną o tej samej nazwie co globalna to cała funkcja odnosi się do lokalnej, ciekawe rozwiązanie..