
4. salam. adlandırmaları dəyişdirsən, əslində, görərsən ki, dəyişdirdiyin dəyər function paramıdır.
let firstValue = 10;
function recursion(param) {
param+=10;
if(param < 100) recursion(param)
return param;
}
const result = recursion(firstValue);
console.log(result, "result");
console.log(firstValue, "firstValue")

6. cumleni anlamadim, asagida cagirmisam deyende neyi nezerde tutursan? hamisina val yazmisan deye, yegin seni çaşdırıb ki, yuxarıda yazdığım val aşağıda yazdığım val deyil? yox, deyil. sən funksiyanın içində globalda oxşar olan variable define etsən, js parser onu function scope-da görüb, default undefined set edir. *
umumen js parser birinci defe sehifedeki kodlari character by character oxuyanda butun variable-lar undefined set olunur
Necə?
let a = 5;
{
console.log(a); // error verecek bu kod
// Uncaught ReferenceError: Cannot access // 'a' before initialization
let a = 8;
// let evezine var yazsa idin undefined alacaqdin.
}
console.log(a)
indi funksiyalarda da oxşar söhbətdir. Sən val deyə ötürmüsən və val kimi də qəbul etmisən. əvvəlcə, bunu anlamaq lazımdır ki, funksiya parametri kind of variabledır. Yəni belə düşünə bilərsən.
function DUMMY(let a = "some data") {}
indi sən bunu məhz belə düşünə bilərsən.
let val = 10; //global variabledir bu
function test(val){
// bu val artıq özü bir variabledır. yuxaridaki ile elaqesi qalmayib. sadəcə // və sadəcə scope içində
// accessible olur. xaricdən access almaq üçün return etməlisən.
...rest of your code
}
bu seni confuse etdise, moral of story: oxsar variable define etme. umumen good practice deyil.
07.02.2023 mesaj izlə Googlla