JavaScriptにおけるグローバル変数と関数のパラメータ

数値をパラメータとして受け取る関数があるとします:

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 自体は関数のローカル変数であり、外部からはアクセスできません:

javascriptfunction func(localNum) {
  
}

let num = 1;
func(num); // パラメータを指定して関数を呼び出す
console.log(localNum); // エラーが発生する

localNum 変数はローカルなので、 その内部での変更は外部に影響を与えません:

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を出力

しかし、関数内部で let を使用して変数 num を宣言すると、 そのようにして外部変数に影響を与えないローカル変数 num が作成されます:

javascriptfunction func(localNum) {
  let num = 2; // letで宣言する
}

let num = 1;
func(num);
console.log(num); // 1を出力 - 何も変わっていない
Задание 1

コードを実行せずに、コンソールに何が出力されるか判断してください:

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

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

コードを実行せずに、コンソールに何が出力されるか判断してください:

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

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

コードを実行せずに、コンソールに何が出力されるか判断してください:

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

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

コードを実行せずに、コンソールに何が出力されるか判断してください:

javascriptlet num = 1;

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

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

コードを実行せずに、コンソールに何が出力されるか判断してください:

javascriptfunction func(localNum) {
  localNum = 2;
}

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

コードを実行せずに、コンソールに何が出力されるか判断してください:

javascriptfunction func(localNum) {
  num = 2;
}

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

コードを実行せずに、コンソールに何が出力されるか判断してください:

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

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