ZMIENNE - umieszczanie każdej w odrębnej funkcji i zmienne globalne

0

Witam, dopiero zaczynam zabawę z javascriptem. Czy w tym przypadku błędem jest umieszczanie każdej zmiennej liczbaa1 i liczbaa2 w odzielnej funkcji ? ( Chiałem te 2 zmienne zrobić jako zmienne globalne, ale wtedy podane działania nie wykonywały się ) Czym to jest spowodowane ?

3

Kod lepiej wkleić do pastebin, bo nikt może nie chcieć pobrać ZIP od ledwo zarejestrowanej osoby.

0

Czy w tym przypadku błędem jest umieszczanie każdej zmiennej liczbaa1 i liczbaa2 w odzielnej funkcji ?

Nie jest to błędem.

Chiałem te 2 zmienne zrobić jako zmienne globalne, ale wtedy podane działania nie wykonywały się ) Czym to jest spowodowane ?

Nie ma to znaczenia jeśli w każdej z tych funkcji są aktualizowane.

function mnozenie()
{
    var liczbaa1 = document.getElementById("liczba1").value;
    var liczbaa2 = document.getElementById("liczba2").value;
    var mnozenie = document.getElementById("wynik")
    mnozenie = liczbaa1 * liczbaa2;
    document.getElementById("wynik").innerHTML = mnozenie;
}

To jest bez sensu, pobierasz wynik 2x, analogicznie w innnych funkcjach.
Poprawniej:

function mnozenie()
{
    var liczbaa1 = document.getElementById("liczba1").value;
    var liczbaa2 = document.getElementById("liczba2").value;
    var wynik = document.getElementById("wynik")
    var mnozenie = liczbaa1 * liczbaa2;
    wynik.innerHTML = mnozenie;
}
0
lookacode1 napisał(a):

Czy w tym przypadku błędem jest umieszczanie każdej zmiennej liczbaa1 i liczbaa2 w odzielnej funkcji ?

Nie jest to błędem.

Chiałem te 2 zmienne zrobić jako zmienne globalne, ale wtedy podane działania nie wykonywały się ) Czym to jest spowodowane ?

Nie ma to znaczenia jeśli w każdej z tych funkcji są aktualizowane.

Ma to znaczenie i jest to potencjalnym trudnym do zlokalizowania błędem. Wyobraź sobie sytuację, kiedy w pętli po zmiennej globalnej wykonujesz jakąś funkcję, a ta funkcja modyfikuje tę zmienną globalną. Możesz zapętlić skrypt w nieskończoność albo wykonać tylko część zamierzonych iteracji. W bardziej skomplikowanych przypadkach możesz nawet zniszczyć dane użytkownika.
Każda funkcja powinna działać tylko na swoich argumentach i swoich zmiennych lokalnych za wyjątkiem pewnych specyficznych sytuacji (np. dostęp do window.location), każda metoda to samo + pola/właściwości obiektu.

1 użytkowników online, w tym zalogowanych: 0, gości: 1