ජාවාස්ක්‍රිප්ට් හි ගෝලීය විචල්යයන් සහ ශ්‍රිත පරාමිතීන්

අපට සංඛ්‍යාවක් පරාමිතියක් ලෙස ගන්නා ශ්‍රිතයක් ඇතැයි සිතමු:

javascriptfunction func(localNum) {
  console.log(localNum);
}

ශ්‍රිතයෙන් පිටත num විචල්යයක් ඇතැයි සිතමු:

javascriptfunction func(localNum) {
  console.log(localNum);
}

let num = 1; // පිටත ගෝලීය විචල්යය

අපගේ ශ්‍රිතය කැඳවමු, එයට num විචල්යය පරාමිතිය ලෙස ලබා දෙමින්:

javascriptfunction func(localNum) {
  console.log(localNum);
}

let num = 1;
func(num); // පරාමිතිය සමඟ ශ්‍රිතය කැඳවන්න, 1 පෙන්වයි

ප්‍රතිඵලය වන්නේ ශ්‍රිතය තුළ localNum විචල්යයට (ශ්‍රිත පරාමිතිය) පමණක් නොව, num විචල්යයටද (පිටත විචල්යය ලෙස) ප්‍රවේශ වීමට හැකි වීමයි:

javascriptfunction func(localNum) {
  console.log(num); // 1 පෙන්වයි
  console.log(localNum); // 1 පෙන්වයි
}

let num = 1;
func(num);

localNum විචල්යයම ශ්‍රිතයේ local විචල්යයක් වන අතර එයට පිටතින් ප්‍රවේශ විය නොහැක:

javascriptfunction func(localNum) {
  
}

let num = 1;
func(num); // පරාමිතිය සමඟ ශ්‍රිතය කැඳවන්න
console.log(localNum); // දෝෂයක් දෙයි

localNum විචල්යය local වන බැවින්, එය සමඟ කරන ඕනෑම වෙනසක් පිටත කිසිවක් වෙනස් නොකරයි:

javascriptfunction func(localNum) {
  localNum = 2; // පිටත කිසිවක් වෙනස් නොකරයි
}

let num = 1;
func(num);

නමුත් ශ්‍රිතය තුළ num විචල්යය (ගෝලීය) වෙනස් කළහොත්, වෙනස පිටත දිස්වේ:

javascriptfunction func(localNum) {
  num = 2;
}

let num = 1;
func(num);
console.log(num); // 2 පෙන්වයි

කෙසේ වෙතත්, ශ්‍රිතය තුළ num විචල්යය let හරහා ප්‍රකාශයට පත් කළහොත්, අපි local විචල්යයක් නිර්මාණය කරන අතර එය පිටත විචල්යයට කිසිදු ආකාරයකින් බලපාන්නේ නැත:

javascriptfunction func(localNum) {
  let num = 2; // let හරහා ප්‍රකාශ කරමු
}

let num = 1;
func(num);
console.log(num); // 1 පෙන්වයි - කිසිවක් වෙනස් වී නැත
Задание 1

කේතය ක්‍රියාත්මක නොකර, console හි පෙන්වන්නේ කුමක්දැයි තීරණය කරන්න:

javascriptfunction func(localNum) {
  console.log(localNum);
}

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

කේතය ක්‍රියාත්මක නොකර, console හි පෙන්වන්නේ කුමක්දැයි තීරණය කරන්න:

javascriptfunction func(localNum) {
  console.log(localNum);
}

let num = 1;
func(num);
Задание 3

කේතය ක්‍රියාත්මක නොකර, console හි පෙන්වන්නේ කුමක්දැයි තීරණය කරන්න:

javascriptfunction func(localNum) {
  console.log(localNum);
}

let num = 1;
func(num);
num = 2;
Задание 4

කේතය ක්‍රියාත්මක නොකර, console හි පෙන්වන්නේ කුමක්දැයි තීරණය කරන්න:

javascriptlet num = 1;

function func(localNum) {
  console.log(localNum);
}

num = 2;
func(num);
Задание 5

කේතය ක්‍රියාත්මක නොකර, console හි පෙන්වන්නේ කුමක්දැයි තීරණය කරන්න:

javascriptfunction func(localNum) {
  localNum = 2;
}

let num = 1;
func(num);
console.log(num);
Задание 6

කේතය ක්‍රියාත්මක නොකර, console හි පෙන්වන්නේ කුමක්දැයි තීරණය කරන්න:

javascriptfunction func(localNum) {
  num = 2;
}

let num = 1;
func(num);
console.log(num);
Задание 7

කේතය ක්‍රියාත්මක නොකර, console හි පෙන්වන්නේ කුමක්දැයි තීරණය කරන්න:

javascriptfunction func(localNum) {
  let num = 2;
}

let num = 1;
func(num);
console.log(num);