応用技術者試験問題

以下に記述されているコードを実行したときの出力として、正しいものを選択してください。

問題1
const arr1 = ['apple', 'orange', 'banana'];
const arr2 = arr1;
arr2[0] = 'grape';
console.log(arr1);

解説:arr1が参照する配列オブジェクトは、arr2もまた参照するため、arr2での変更がarr1にも反映される。

問題2
function add(num1, num2) {
  return num1 + num2;
}

console.log(add(1, 2, 3));

解説:関数addは引数を2つしか受け取らないので、3番目の引数は無視される。したがって、add(1, 2, 3)はadd(1, 2)と等しい結果を返す。

問題3
const obj1 = { name: 'Alice', age: 25 };
const obj2 = Object.create(obj1);
delete obj2.name;
console.log(obj2.name);

解説:Object.create(obj1)により、obj2はobj1をプロトタイプとして継承するオブジェクトが生成される。delete obj2.nameにより、obj2が持つnameのプロパティが削除され、その後obj2.nameを参照してもundefinedが返される。

このアプリを作ったプロンプト