Funkcja zagnieżdżona - dlaczego to tak działa?

Funkcja zagnieżdżona - dlaczego to tak działa?
PM
  • Rejestracja:prawie 6 lat
  • Ostatnio:prawie 5 lat
  • Postów:36
0
Kopiuj
const findRightResoult = (x, y, z) => {
    function division(a) {
        return Math.sqrt(a);
    }
    return division(x) + division(y) + division(z);
};
console.log(findRightResoult(49, 36, 25));

Dlaczego musiałem napisać javascript return Math.sqrt(a); , aby pokazało poprawny wynik, czyli 18? Bo jednak na początku bardziej zrozumiałe było dla mnie, aby zamiast tego a wpisać 2, co oznacza pierwiastek z 2, natomiast wynik nie był 18, tylko 4.2xxx.

Leroy
  • Rejestracja:prawie 10 lat
  • Ostatnio:ponad rok
  • Lokalizacja:Wrocław
  • Postów:107
2

Math.sqrt przyjmuje jako argument liczbę z której chcesz policzyć pierwiastek a nie stopień pierwiastka. Dlatego musi być 'a' a nie '2'

edytowany 1x, ostatnio: Leroy
Maciej Cąderek
Maciej Cąderek
  • Rejestracja:ponad 9 lat
  • Ostatnio:ponad 3 lata
  • Lokalizacja:Warszawa
  • Postów:1264
3

Btw wewnętrzna funkcja jest kompletnie zbędna w tym przypadku, wystarczy:

Kopiuj
const findRightResult = (x, y, z) => {
  return Math.sqrt(x) + Math.sqrt(y) + Math.sqrt(z);
};
console.log(findRightResult(49, 36, 25));
edytowany 1x, ostatnio: Maciej Cąderek

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.