JavaScriptにおける名前とパラメータの衝突

関数のパラメータは、その内部でローカル変数となります。 関数のパラメータを、外部のグローバル変数と同じ名前で定義してみましょう:

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

let num = 1;
func(num);

この場合、関数の外側には変数 num が、 関数の内側にも変数 num があることになります。 しかし、これらは異なる変数です:関数内で変数を変更すると、 その関数のローカル変数が変更されます。 外部の変数は関数内からはアクセスできず、いかなる方法でも 変更することはできません。確認してみましょう:

javascriptfunction func(num) {
  num = 2; // ローカル変数を変更
}

let num = 1;
func(num);
console.log(num); // 1 が表示される - 何も変わっていない
Задание 1

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

javascriptfunction func(num) {
  num = 2;
}

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

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

javascriptfunction func() {
  num = 2;
}

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

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

javascriptfunction func() {
  let num = 2;
}

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