TIL20230612

M·2023년 6월 12일
0

TIL

목록 보기
18/42

오늘은 예제문제를 풀어보았따.

문제 1. 자바스크립트의 동적 타이핑이란 무엇을 의미하는가요?

  1. 모든 변수 타입이 동일하다는 것
  2. 변수의 타입이 런타임 시점에 결정된다는 것 ♠︎
  3. 변수의 타입이 프로그램이 실행되는 동안에 변경될 수 없다는 것
  4. 변수를 선언할 때 반드시 타입을 지정해야 한다는 것

문제 2. 자바스크립트에서 var로 선언된 변수는 어떻게 작동하나요?

  1. 같은 이름의 변수를 여러 번 선언하면 오류가 발생한다.
  2. 선언 후에 값을 변경할 수 없다.
  3. 같은 이름의 변수를 여러 번 선언해도 오류가 발생하지 않고, 가장 마지막에 선언한 값으로 변수가 덮어씌워진다. ♠︎
  4. var로 선언된 변수는 메모리에 저장되지 않는다.

문제 3. 자바스크립트에서 const로 선언된 변수에 대한 설명 중 틀린 것은 무엇인가요?

  1. const는 선언 후에 값을 변경할 수 없는 상수를 선언할 때 사용된다.
  2. 같은 이름의 변수를 두 번 선언하면 오류가 발생한다.
  3. const로 선언된 변수는 값을 변경할 수 있다. ♠︎
  4. const는 ES6에서 새로 도입된 변수 선언 방법이다.

문제 4. "Hello" / 2의 결과값은 무엇인가요?

  1. 2
  2. "Hello2"
  3. NaN ♠︎
  4. undefined

문제 5. 자바스크립트에서 find() 메서드가 주어진 함수를 만족하는 배열의 첫 번째 요소를 반환하는 다음 예제를 참고하세요.

let array = [5, 12, 8, 130, 44];
let found = array.find(element => element > 10);

이 코드에서 found 변수의 값은 어떻게 될까요?

  1. 5
  2. 12 ♠︎
  3. 8
  4. 130

문제 6. 다음 코드의 출력 결과는 무엇일까요?

function add(x, y) {
  return x + y;
}

console.log(add(2, 3));
  1. 2
  2. 3
  3. 5 ♠︎
  4. undefined

문제 7. 주어진 배열의 모든 요소를 제곱하여 새로운 배열을 생성하는 코드는 다음 중 어떤 것인가요?

  1. transformedArray = array.map(num => num * num);♠︎
  2. transformedArray = array.filter(num => num * num);
  3. transformedArray = array.reduce((acc, num) => acc + num * num, []);
  4. transformedArray = array.slice().map(num => num * num);

문제 8. 다음 코드의 출력 결과는 무엇일까요?

let square = x => x * x;

console.log(square(3));
  1. 3
  2. 6
  3. 9 ♠︎
  4. undefined

문제 9. do...while문이 하는 일은 무엇인가요?

  1. 초기값, 조건식, 증감식을 사용하여 반복 횟수를 제어한다.
  2. 일단 한 번은 코드를 실행하고, 그 후에 조건식을 체크하여 반복 여부를 결정한다. ♠︎
  3. 조건식이 참인 경우에만 코드를 반복해서 실행한다.
  4. 객체의 프로퍼티를 순서대로 접근한다.

문제 10. 아래 코드의 출력 결과는 무엇인가요?

let count = 0;
while (count < 5) {
  console.log(count);
  count++;
  if (count === 3) {
    break;
  }
}
  1. 0
  2. 0 1
  3. 1 2
  4. 0 1 2 ♠︎

문제 11. 아래 코드의 출력 결과는 무엇인가요?

const person = {
  name: "John",
  age: 30,
  city: "New York"
};

const entries = Object.entries(person);

console.log(entries);
  1. ["name", "John"], ["age", 30], ["city", "New York"] ♠︎
  2. ["name: John", "age: 30", "city: New York"]
  3. ["John", 30, "New York"]
  4. 오류 발생

문제 12. 다음 코드에서 함수와 관련된 내용을 고르세요.

const numbers = [1, 2, 3, 4, 5];

const doubledNumbers = numbers.map(num => num * 2);

console.log(doubledNumbers);
  1. numbers 배열의 각 요소를 2배로 만들어서 새로운 배열 doubledNumbers를 생성합니다. ♠︎
  2. numbers 배열에서 짝수인 요소만 필터링하여 새로운 배열 doubledNumbers를 생성합니다.
  3. numbers 배열에서 인덱스 1부터 4까지의 요소를 추출하여 새로운 배열 doubledNumbers를 생성합니다.
  4. numbers 배열을 그대로 복사하여 새로운 배열 doubledNumbers를 생성합니다.

문제 13. 다음 코드에서 삼항 연산자와 관련된 내용을 고르세요.

const num = 10;

const result = num > 5 ? 'Greater than 5' : 'Less than or equal to 5';

console.log(result);
  1. num 변수가 5보다 크다면 'Greater than 5' 문자열을, 그렇지 않다면 'Less than or equal to 5' 문자열을 result 변수에 할당합니다. ♠︎
  2. num 변수가 5보다 작다면 'Greater than 5' 문자열을, 그렇지 않다면 'Less than or equal to 5' 문자열을 result 변수에 할당합니다.
  3. num 변수가 5보다 크다면 true를, 그렇지 않다면 falseresult 변수에 할당합니다.
  4. num 변수가 5보다 작다면 true를, 그렇지 않다면 falseresult 변수에 할당합니다.

문제 14. 다음 코드에서 구조 분해 할당(Destructuring Assignment)과 관련된 내용을 고르세요.

const person = {
  name: 'John',
  age: 30,
  country: 'USA'
};

const { name, age, country } = person;

console.log(name, age, country);
  1. person 객체의 name, age, country 속성을 각각 변수 name, age, country에 할당합니다. ♠︎
  2. person 객체의 name, age, country 속성을 배열로 할당하고, 순서대로 변수 name, age, country에 할당합니다.
  3. person 객체의 속성 중에서 name, age, country만을 선택하여 새로운 객체를 생성합니다.
  4. person 객체의 속성 중에서 name, age, country만을 선택하여 새로운 배열을 생성합니다.

문제 15. 다음 코드에서 단축 속성명(Shorthand Property Name)과 관련된 내용을 고르세요.

const name = 'John';
const age = 30;

const person = {
  name,
  age,
  country: 'USA'
};

console.log(person);
  1. nameage 변수의 값을 각각 person 객체의 nameage 속성으로 할당합니다. ♠︎
  2. person 객체의 nameage 속성을 각각 nameage 변수의 값으로 초기화합니다.
  3. person 객체의 nameage 속성을 name: name, age: age와 같이 명시적으로 할당합니다.
  4. person 객체의 속성 중에서 nameage 속성만을 선택하여 새로운 객체를 생성합니다.

문제 16. 다음 코드에서 전개 구문(Spread Syntax)과 관련된 내용을 고르세요.

const numbers = [1, 2, 3];
const moreNumbers = [4, 5, 6];

const combinedNumbers = [...numbers, ...moreNumbers];

console.log(combinedNumbers);
  1. numbers 배열과 moreNumbers 배열의 모든 요소를 병합하여 새로운 배열 combinedNumbers를 생성합니다. ♠︎
  2. numbers 배열과 moreNumbers 배열의 첫 번째 요소를 병합하여 새로운 배열 combinedNumbers를 생성합니다.
  3. numbers 배열과 moreNumbers 배열을 병합하여 numbers 변수에 할당합니다.
  4. numbers 배열과 moreNumbers 배열을 순서대로 출력합니다.

문제 17. 다음 코드에서 나머지 매개변수(Rest Parameter)와 관련된 내용을 고르세요.

function sum(...numbers) {
  return numbers.reduce((acc, num) => acc + num, 0);
}

const result = sum(1, 2, 3, 4, 5);

console.log(result);
  1. sum 함수는 임의 개수의 인수를 받아서 모두 더한 값을 반환합니다. ♠︎
  2. sum 함수는 첫 번째 인수와 나머지 인수들을 더한 값을 반환합니다.
  3. sum 함수는 나머지 인수들을 배열로 받아서 모두 더한 값을 반환합니다.♠︎
  4. sum 함수는 첫 번째 인수를 제외한 나머지 인수들을 모두 더한 값을 반환합니다.

문제 18. 다음 코드에서 템플릿 리터럴(Template Literal)과 관련된 내용을 고르세요.

const name = 'John';
const age = 30;

const message = `My name is ${name} and I am ${age} years old.`;

console.log(message);
  1. message 변수에 템플릿 리터럴을 사용하여 문자열을 할당합니다. ♠︎
  2. nameage 변수의 값을 문자열에 삽입하기 위해 템플릿 리터럴을 사용합니다. ♠︎
  3. nameage 변수를 이용하여 문자열을 연결하기 위해 템플릿 리터럴을 사용합니다. ♠︎
  4. nameage 변수의 값을 연산하여 message 변수에 할당합니다.

문제 19. 다음 코드에서 자료구조 Map과 Set과 관련된 내용을 고르세요.

const myMap = new Map();

myMap.set('key1', 'value1');
myMap.set('key2', 'value2');
myMap.set('key3', 'value3');

const mySet = new Set();

mySet.add('value1');
mySet.add('value2');
mySet.add('value3');

console.log(myMap.size);
console.log(mySet.size);
  1. myMap은 키와 값의 쌍을 저장하는 자료구조로, set 메서드를 사용하여 값을 저장합니다.♠︎
  2. mySet은 중복을 허용하지 않는 값들의 집합을 저장하는 자료구조로, add 메서드를 사용하여 값을 저장합니다.♠︎
  3. myMap.sizemyMap에 저장된 키-값 쌍의 개수를 반환합니다.♠︎
  4. mySet.sizemySet에 저장된 값의 개수를 반환합니다.♠︎

문제 20. 다음 중 bind 메서드와 call 메서드의 차이점은 무엇인가요?

  1. bind 메서드는 함수를 호출하지 않고 새로운 함수를 생성하며, call 메서드는 함수를 호출합니다. ♠︎
  2. bind 메서드는 함수에 인자를 전달할 수 있지만, call 메서드는 인자를 전달할 수 없습니다.
  3. bind 메서드는 함수를 즉시 실행하고, call 메서드는 함수를 나중에 실행합니다.
  4. bind 메서드는 함수의 컨텍스트를 변경하고, call 메서드는 함수의 인자를 변경합니다. ♠︎?

문제 21. 다음 코드의 결과는 무엇일까요?

const obj = {
  name: "John",
  greeting: function() {
    console.log(`Hello, ${this.name}!`);
  }
};

const obj2 = {
  name: "Alice"
};

obj.greeting.bind(obj2)();
  1. "Hello, John!"이 출력됩니다.
  2. "Hello, Alice!"가 출력됩니다. ♠︎
  3. "Hello, undefined!"가 출력됩니다.
  4. 에러가 발생합니다.

문제 22. 다음 코드의 실행 결과는 무엇일까요?

function greet(name, callback) {
  console.log(`Hello, ${name}!`);
  callback();
}

function sayGoodbye() {
  console.log("Goodbye!");
}

greet("John", sayGoodbye);
  1. "Hello, John!"이 출력되고, 그 다음에 "Goodbye!"가 출력됩니다. ♠︎
  2. "Goodbye!"가 출력되고, 그 다음에 "Hello, John!"이 출력됩니다.
  3. "Hello, John!"과 "Goodbye!"가 동시에 출력됩니다.
  4. 에러가 발생합니다.

문제 23. 콜백지옥(callback hell)이란 무엇인가요?

  1. 콜백 함수의 연속적인 호출로 인해 코드가 복잡해지고 가독성이 떨어지는 상황을 말합니다. ♠︎
  2. 콜백 함수가 비동기 작업을 처리하는 동안 발생하는 오류를 의미합니다.
  3. 콜백 함수가 무한히 재귀적으로 호출되어 스택 오버플로우가 발생하는 상황을 의미합니다.
  4. 콜백 함수가 실행되기 전에 다른 함수에 의해 변경되어 원하는 결과를 얻을 수 없는 상황을 말합니다.

예제문제들이 자바스크립트 문법의 복습을 하는데 도움이 많이 된것같다.

profile
자바스크립트부터 공부하는 사람

0개의 댓글