JavaScript හි පිටත සහ ඇතුළත ශ්‍රිතවල පරාමිතීන්

පිටත ශ්‍රිතය සහ ඇතුළත ශ්‍රිතය දෙකම පරාමිතීන් පිළිගන්නා ආකාරයට අපි කරමු:

javascriptfunction test(num) {
  function func(localNum) {
    console.log(localNum);
  }
}

පිටත ශ්‍රිතයේ පරාමිතිය ඇතුළත ශ්‍රිතය කැඳවීමට සම්ප්‍රේෂණය කරමු:

javascriptfunction test(num) {
  function func(localNum) {
    console.log(localNum); // 1 දක්වයි
  }
  
  func(num); //!! පරාමිතිය සම්ප්‍රේෂණය කරමු
}

test(1); // අංකය පරාමිතියක් ලෙස සම්ප්‍රේෂණය කරමු

එහි ප්‍රතිඵලයක් ලෙස, ඇතුළත ශ්‍රිතය තුළ num විචල්‍යය ප්‍රාරම්භක ශ්‍රිතයෙන් පිටත විචල්‍යයක් ලෙසත්, localNum විචල්‍යය ඇතුළත ශ්‍රිතයේ දේශීය විචල්‍යයක් ලෙසත් ලබා ගත හැකිය.

මෙම විචල්‍ය දෙකට එකම අගයන් ඇත:

javascriptfunction test(num) {
  function func(localNum) {
    console.log(num); // 1 දක්වයි
    console.log(localNum); // 1 දක්වයි
  }
  
  func(num);
}

test(1);

ඒවා අතර වෙනස පහත පරිදි වේ: ඇතුළත ශ්‍රිතය තුළ num විචල්‍යය වෙනස් කළහොත්, එය පිටත ශ්‍රිතයේ ද වෙනස් වේ:

javascriptfunction test(num) {
  function func(localNum) {
    num = 2; // num විචල්‍යය වෙනස් කරමු
  }
  
  func(num);   // පරාමිතිය සම්ප්‍රේෂණය කරමු
  console.log(num);  // 2 දක්වයි
}

test(1); // අංකය පරාමිතියක් ලෙස සම්ප්‍රේෂණය කරමු

localNum විචල්‍යය දේශීය වනු ඇත. එය වෙනස් කිරීම පිටත ශ්‍රිතයේ කිසිදු වෙනසකට තුඩු නොදේ. තවද localNum විචල්‍යයම ඇතුළත ශ්‍රිතයෙන් පිටත දෘශ්‍යමාන නොවේ:

javascriptfunction test(num) {
  function func(localNum) {
    localNum = 2; // num විචල්‍යය වෙනස් කරමු
  }
  
  func(num); // පරාමිතිය සම්ප්‍රේෂණය කරමු
}

test(1); // අංකය පරාමිතියක් ලෙස සම්ප්‍රේෂණය කරමු
Задание 1

කේතය දියත් නොකර, කොන්සෝලයේ දක්වන්නේ කුමක්දැයි තීරණය කරන්න:

javascriptfunction test(num) {
  function func(localNum) {
    console.log(localNum);
  }
  
  func(num);
}

test(1);
Задание 2

කේතය දියත් නොකර, කොන්සෝලයේ දක්වන්නේ කුමක්දැයි තීරණය කරන්න:

javascriptfunction test(num) {
  function func(localNum) {
    console.log(localNum);
  }
  
  func(num + 1);
}

test(1);
Задание 3

කේතය දියත් නොකර, කොන්සෝලයේ දක්වන්නේ කුමක්දැයි තීරණය කරන්න:

javascriptfunction test(num) {
  function func(localNum) {
    console.log(num);
  }
  
  func(num + 1);
}

test(1);
Задание 4

කේතය දියත් නොකර, කොන්සෝලයේ දක්වන්නේ කුමක්දැයි තීරණය කරන්න:

javascriptfunction test(num) {
  function func(localNum) {
    localNum = 2;
  }
  
  func(num);
  console.log(num);
}

test(1);
Задание 5

කේතය දියත් නොකර, කොන්සෝලයේ දක්වන්නේ කුමක්දැයි තීරණය කරන්න:

javascriptfunction test(num) {
  function func(localNum) {
    localNum = 2;
  }
  
  func(num);
  console.log(localNum);
}

test(1);
Задание 6

කේතය දියත් නොකර, කොන්සෝලයේ දක්වන්නේ කුමක්දැයි තීරණය කරන්න:

javascriptfunction test(num) {
  function func(localNum) {
    num = 2;
  }
  
  func(num);
  console.log(num);
}

test(1);