
•A.배열의 길이는 pokemon.length 로 알 수 있고, 길이는 5이다.
•B.pokemon.pop()으로 배열의 요소 중 마지막 요소인 ‘아구몬’을 제거할 수 있다.
•C.typeof pokemon의 결과는 array이다.
•D.pokemon.splice(5, 1, '이브이')를 입력하면 ‘아구몬'이 제거 되고 그 자리에 ‘이브이'가 추가된다.
C. typeof pokemon의 결과는 object
•D. splice메서드는 순서대로 (제거할 요소의 인덱스, 몇 번째 요소까지, 제거한 후 대신 추가할 요소)를 전달할 수 있음. 보기 D의 경우 5번째 요소부터 1번째 요소까지 제거한 후, 이브이요소를 추가. 그러나 원본 배열 pokemon에 5번째 요소는 없기 때문에(undefined), 5번째 요소로 이브이'가 추가
•A.arr === []
•B.arr.length === 0
•C.arr = []
•D.Array.isArray(arr) === 0
•A: [] === []은 false 라는 것에 대해서 이해할 수 있어야 틀린 이유를 알 수 있음 자바스크립트 상에서는 두 배열을 "주소가 다른 두 개의 빈 배열"이라고 생각하기 때문
•C: =는 값을 할당하는 기호. 즉, 변수 arr에 []을 재할당하는 코드.
•D: Array.isArray()는 전달인자의 타입이 배열인지 체크해서 boolean값을 리턴하는 메서드, 배열인지 여부를 확인할 수 있으나, 빈 배열인지 확인하는 방법으로는 적절하지 않음

•A.let codingArr = kimcoding.split(" - ")
•B.let codingArr = kimcoding.split(" ")
•C.let codingArr = kimcoding.split("-")
•D.let codingArr = kimcoding.splice(" ")
•split 메서드는 전달인자로 들어가는 string을 기준으로 끊어 배열에 담아주고 그 배열을 리턴하는 메서드 , 문자열 kimcoding은 '-' 를 기준으로 숫자를 나눌 수 있음
•A.function addToFront(arr, element) {
return arr.unshift(element);
}
•B.function addToFront(arr, element) {
arr.shift(element);
return arr;
}
•C.function addToFront(arr, element) {
arr.pop(element);
return arr;
}
•D.function addToFront(arr, element) {
arr.unshift(element);
return arr;
}
•**A. unshift메서드는 배열의 가장 앞 요소를 추가한 후, 배열의 length를 리턴합니다. 따라서 addToFront함수의 결과도 배열의 length입니다. 문제의 예시의 경우 3이 출력.
•B. shift메서드는 배열의 첫 번째 요소를 제거한 후, 첫 번째 요소를 리턴합니다. 또한 shift메서드는 전달인자를 필요로 하지 않음.
•C. pop메서드는 배열의 마지막 요소를 제거한 후 마지막 요소를 리턴.
•A.function getElementsUpTo(array, n) {
return array.slice(0, n);
}
•B.function getElementsUpTo(array, n) {
array.slice(0, n);
return array;
}
•C.function getElementsUpTo(array, n) {
let result = array.slice()
return result.slice(0, n)
}
•D.function getElementsUpTo(array, n) {
let result = array.slice()
return result
•B. slice메서드를 사용해도 원본 배열은 변하지 않기 때문에 원본 배열 array를 그대로 리턴
•D. slice메서드를 사용하여 원본 배열을 복사한 후 그대로 리턴하고 있습니다. 원본 배열을 그대로 리턴
getGreatestElement()의 의사코드로 바르게 작성된 것을 고르세요. 답:B•A.
function getGreatestElement(arr) {
변수 greatest를 선언하고, 0을 할당한다.
0번째 요소와 1번째 요소를 비교해서, 큰 값을 변수 greatest에 할당한다.
1번째 요소와 2번째 요소를 비교해서, 큰 값을 변수 greatest에 할당한다.
변수 greatest를 리턴한다.
}
•B.
function getGreatestElement(arr) {
변수 greatest를 선언하고, 0번째 요소를 할당한다.
1번째 요소부터, 가장 마지막 요소까지 순회하는 반복문을 만든다.
만약, arr[i]가 greatest보다 크면, 변수 greatest에 arr[i]의 값을 할당한다.
그렇지 않으면, 아무런 동작도 하지 않는다.
반복문이 끝나면 변수 greatest를 리턴한다.
}
•C.
function getGreatestElement(arr) {
변수 greatest를 선언하고, 0을 할당한다.
0번째 요소부터, 가장 마지막 요소까지 순회하는 반복문을 만든다.
만약, arr[i]가 greatest보다 크면, 변수 greatest에 arr[i]의 값을 할당한다.
그렇지 않으면, 아무런 동작도 하지 않는다.
반복문이 끝나면 변수 greatest를 리턴한다.
}
•D.
function getGreatestElement(arr) {
변수 greatest를 선언한다.
0번째 요소부터, 가장 마지막 요소까지 순회하는 반복문을 만든다.
arr[i]와 다음 요소를 비교하여 큰 수를 greatest에 할당한다.
반복문이 끝나면 변수 greatest를 리턴한다.
}

•A.{
name: '불고기피자',
topping: '치즈',
price: 7900,
quantity: 2
}
•B.{
name: '치즈피자',
topping: '치즈',
dough: '치즈크러스트'
price: 7900
}
•C.{
name: '치즈피자',
topping: '불고기',
dough: '치즈크러스트'
price: 8900,
}
•D.{
name: '치즈피자',
topping: '치즈',
dough: '치즈크러스트'
price: 7900,
quantity: 2
}
1. order['name'] = '치즈피자'; // name 속성이 이미 있기 때문에 name의 값을 '치즈피자'로 변경
_2. order.topping = '치즈'; // topping 속성이 이미 있기 때문에 topping의 값을 '치즈'로 변경
3. order.price = 7900; // price 속성은 없기 때문에 새로 생성한 후 값으로 7900 추가**
4. delete order.quantity // quantity 속성 삭제_**

•A.function addPropertyAndValue(obj, property, value) {
obj['property'] = value;}
•B.
function addPropertyAndValue(obj, property, value) {
obj[property] = value;}
•C.
function addPropertyAndValue(obj, property, value) {
obj.property = value;}
•D.
function addPropertyAndValue(obj, property, value) {
obj.'property' = value;}
**•A. obj['property'] = value; 의 'property'는 변수 property 가 아니라 문자열 'property' , 그래서 obj에 'property'라는 key를 만들어주고 value 값을 담게 됨
•C. 보기 A과 마찬가지로 property라는 key를 만들어주고 그 key에 value를 담아줌
•D. 틀린 문법**
•A.function allKeys(obj) {
for (let key in obj) {
console.log(key)
}
}
•B.function allKeys(obj) {
for (let key of obj) {
console.log(key)
}
}
•C.function allKeys(obj) {
for (let key = 0; key < obj.length; key++) {
console.log(key)
}
}
•D.function allKeys(obj) {
for (let key = 0; key <= obj.length; key++) {
console.log(key)
}
}
**텍스트배열과 객체의 가장 큰 차이점은 순서 정보의 유무, 배열은 요소에 0부터 순차적으로 접근할 수 있지만 객체는 속성에 순서대로 접근하지 않고,key를 통해서 value에 접근.
•A.function extend(obj1, obj2) {
for (let key in obj2) {
obj1[key] = obj2[key];
}
}
•B.function extend(obj1, obj2) {
for (let key of obj2) {
if (!(key in obj1)) {
obj1[key] = obj2[key];
}
}
}
•C.function extend(obj1, obj2) {
for (let key in obj2) {
if (!(key in obj1)) {
obj1[key] = obj2[key];
}
}
}
•D.function extend(obj1, obj2) {
for (let key in obj1) {
if (!(key in obj2)) {
obj2[key] = obj1[key];
}
}
}
**•A. obj1과 obj2에 중복으로 있는 key에 해당하는 값까지 모두 변경합
•B. for ~ of문 는 string, array, 유사배열 등에만 사용, 객체에는 사용되지 않음.
D. obj1의 속성을 obj2에 추가하는 코드