01. 결괏값을 작성하시오.
{
if( null ){
console.log("true");
} else {
console.log("false");
}
}
A
: false
02. 결괏값을 작성하시오. ✔
{
let num = 0;
while( num <= 5 ){
num++;
console.log(num);
}
}
제출한 답 : 1 2 3 4 5
※증감식의 위치와 출력문의 위치를 잘 확인할 것.
출력문이 증감식 밑에 있으면 이미 1 증가한 뒤 출력되기 때문에 조건으로 준 숫자보다 1 큰 수까지 출력됨.
A
: 1 2 3 4 5 6
num 변수가 0으로 초기화되고, num이 5 이하일 동안 while문이 실행된다.
조건이 맞으므로, num을 1 증가시키고 console.log를 통해 출력 시킨다.
console.log가 증감식보다 밑에 있어 이미 1이 증가된 후 출력 되기 때문에 5까지 출력 되지 않고 6까지 출력된다.
03. 결괏값을 작성하시오. ✔
{
const str = [100, 200, 300, 400, 500];
str.forEach(function(i){
console.log(i);
});
}
제출한 답 : 0 1 2 3 4
※forEach문은 함수를 사용한다는 점과 키와 값을 출력 할 수 있다는 점을 기억할 것.
A
: 100 200 300 400 500
str은 배열이며, forEach 메서드는 배열의 각 요소에 대해 주어진 콜백 함수를 실행한다.
이 경우, 콜백 함수는 배열의 각 요소를 매개변수 i로 받아 console.log를 실행한다.
forEach 메서드는 str 배열의 각 요소를 하나씩 순회하면서 각 요소를 하나씩 출력한다.배열 str의 요소는 [100, 200, 300, 400, 500] 이며, forEach 메서드는 이 요소들을 순서대로 처리하여 console.log로 출력한다.
04. 결괏값을 작성하시오.
{
const str = [100, 200, 300, 400, 500];
for(let i of str){
console.log(i);
}
}
A
: 100 200 300 400 500
문자열이나 배열과 같은 반복 가능한 자료에서 사용하는 반복문으로, (변수 of 배열 이름)의 형식이다.
출력해야 할 타겟, 대상을 정하여 변수로 선언해주어야 하며 출력문에는 변수 이름을 넣어주어야 함.
05. 결괏값을 작성하시오. ✔
{
const obj = {
a: 100,
b: 200
};
for(let key in obj) {
console.log(key);
console.log(obj[key]);
}
}
작성한 답: 0 1 a : 100, b: 200
A
: a 100 b 200
key는 for in 반복문에서 현재 객체의 속성 이름을 나타내는 변수이다.
따라서 obj 객체 속성명인 a와 b가 순서대로 'key'에 할당된 후 출력된다.
obj[key]는 key 변수에 해당하는 속성 값에 접근하기 위한 방법으로, a와 b의 속성 값을 출력하기 위해 obj[key]를 사용한다.
첫 번째 반복에서 key는 a이므로, obj[key]는 obj.a와 같은 의미가 되기 때문에 100을 출력한다.
두 번째 반복에서의 key는 b이므로 obj[key]는 obj.b와 같은 의미가 되기 때문에 200을 출력한다.
06. 결괏값을 작성하시오. ✔
{
let num = 0;
while( true ){
num++;
if( num == 3 ){
continue;
}
if( num > 6 ){
break;
}
console.log(num);
}
}
작성한 답: 1 2 4 5 6
※조건식 위치에 0이 들어간 것이 아니므로 true가 맞음.
또한 이미 num이 한 번 증가되어 출력되기 때문에 1부터 시작하고 break문의 조건이 num 변수가 6보다 큰 수면 더이상 출력하지 않고 반복문을 끊어버리므로 결과값이 6으로 끝나게 됨.
A
: 1 2 4 5 6
num 변수는 0으로 초기화 되고 반복문이 실행될 때마다 1씩 증가한다.
num의 값이 3일 때는 cotinue 문을 만나 결과값이 출력되지 않고 건너 뛰어진다. 그러므로 3은 결과값으로 출력되지 않는다.
num이 6보다 커지면 break문으로 인해 반복문이 종료되므로 6 이후의 숫자는 출력되지 않는다.
07. 결괏값을 작성하시오. ✔
{
for(let i=1; i<=5; i++){
console.log(i);
if(i == 3){
break;
}
}
}
작성한 답: 1 2 3 4 5
A
: 1 2 3
처음에 i는 1로 초기화 되고, 반복문이 실행될 때마다 1씩 증가하며, console.log를 통해 i 값을 출력한다.
증가식으로 인해 1씩 증가되던 i값이 3이 되면 if 의 조건문은 참이 되어 break문으로 인해 반복문이 종료된다.
따라서 3 이후의 숫자(값)은 출력되지 않는다.
08. 결괏값을 작성하시오. ✔
{
let num = 0;
while (num < 20){
num++;
console.log(num);
if(num == 1){
break;
}
}
}
A
: 1 2 3
처음에는 i는 1로 초기화 되고, 반복문이 실행될 때마다 1씩 증가하며, console.log를 통해 i 값을 출력한다.
증가식으로 인해 1 증가된 i가 if 문의 조건을 만족했으므로 break문을 만나 반복문이 종결된다.
09. 결괏값을 작성하시오.
{
let num = 100;
switch(num){
case 100 :
console.log("100");
break;
case 200 :
console.log("200");
break;
default :
console.log("300");
}
}
A
: 100
case와 값을 하나씩 비교하여 일치하는 case를 실행(출력) 시킴.
if와 다르게 조건을 만족한 후에도 식이 종료되지 않으므로 break를 사용하여 끊어주어야 함.
break를 사용하지 않아도 결괏값은 출력이 되지만 값이 true인 이상 반복문은 무한하게 반복되므로 끊어주는 것이 좋음.
default는 case와 일치하는 값이 없을 때 출력됨.
10. 결괏값을 작성하시오.
{
func = () => {
const str = "함수가 실행되었습니다.";
return str;
}
console.log(func());
}
A
: 함수가 실행되었습니다.
리턴값 함수의 화살표 형태로, func 함수는 const str에 함수가 실행되었습니다. 라는 문자열을 선언하고 반환한다.
console.log(func())는 func 함수를 호출하고 그 결과값인 함수가 선언되었습니다. 라는 문자열을 출력한다.
11. 결괏값을 작성하시오.
{
let direct = 1;
function gallery(num){
if(num){
if(num == 2) direct++;
} else {
if(num == 1) direct--;
}
}
gallery(2);
console.log(direct);
}
A
: 2
gallery 함수는 num이 2일 경우에 direct 변수를 1 증가시킨다.
gallery 함수가 호될 때 2가 매개변수 num으로 전달되므로 함수 내부에서는 direct 변수가 1 증가된다.
direct 변수의 초깃값은 1이므로 함수 호출 전에는 direct 1이었으나,
gallery(2) 함수 호출 후에 direct 변수가 1 증가하므로 출력값은 2가 된다.
12. 결괏값을 작성하시오.
{
let sum = 0;
for(var i=1; i<=100; i++) {
sum += i;
};
console.log(sum);
}
A
: 5050
let sum = 0; 은 변수 sum을 선언하고 0으로 초기화 한다.
for문을 사용하여 i를 1부터 100까지 1씩 증가시키면서 반복을 실행한다.
각 반복마다 sum 변수에 i 값을 누적하여 1부터 100까지 모든 정수를 더한 값을 sum에 저장한다.
13. 결괏값을 작성하시오.
{
const obj = {
a: 100,
b: 200,
c: "javascript"
}
const { a:_____, b:_____, c:_____ } = obj;
document.write(name1);
document.write(name2);
document.write(name3);
//100
//200
//javascript
}
A
: name1, name2, name3
객체 obj를 정의하고 객체의 속성들을 해체하여 각각 name1, name2, name3 변수에 할당하고 이 변수들을 document.write 함수를 사용하여 출력한다.
객체의 속성들을 해체하여 변수에 할당할 때는 객체 속성 이름과 변수 이름을 콜론(:)으로 구분하여 작성한다.
14. 결괏값을 작성하시오.
{
const obj = {
a: 100,
b: 200,
c: "javascript"
}
const { a, b, c } = _______;
document.write(a);
document.write(b);
document.write(c);
//100
//200
//javascript
}
A
: obj
객체 obj를 정의하고 객체의 속성들을 해체하여 각각 a, b, c 변수에 할당하고 이 변수들을 document 함수를 사용하여 출력한다.
객체의 속성들을 해체하여 변수에 할당할 때, 객체의 속성 이름과 변수 이름이 동일한 경우에는 {속성1, 속성2, 속성3 ... } = 객체; 와 같이 간단하게 작성할 수 있다.
15. 결괏값을 작성하시오.
{
const objA = {
a: 100,
b: 200
}
const objB = {
c: "javascript",
d: "jquery"
}
const spread = {...objA, ...objB}
document.write(spread.a);
document.write(spread.b);
document.write(spread.c);
document.write(spread.d);
}
A
: 100 200 javascript jquery
두 개의 객체 obj.A와 obj.B를 정의하고 spread 연산자를 사용하여 두 객체를 병합한 spread 객체를 생성한다.
spread 연산자를 사용하여 객체를 병합할 때, 두 객체의 속성 이름이 중복되는 경우에는 마지막에 병합된 객체의 속성 값이 사용된다.따라서 obj.B 객체의 c속성과 d 속성이 spread 객체에 포함되어 있다.
16. 결괏값을 작성하시오.
{
const char = ["J","A","V","A","S","C","R","I","P","T"];
for(let i=9; i>=0; i--){
console.log(char[i]);
}
}
A
: T P I R C S A V A J
변수 i를 9부터 0까지 1씩 감소 시키면서 배열의 키(자리값)으로 사용한다.
따라서 char[9] 부터 char[0]까지 차례대로 출력된다.i가 증가하는 게 아니라 감소하는 반복문이므로 역순으로 출력된다.
17. 결괏값을 작성하시오.
{
let a = 1, b = 2, c = 3, result;
result = ++a + b++ + ++c;
console.log(result);
console.log(a);
console.log(b);
console.log(c);
}
A
: 8 2 3 4
첫번째 연산에서는 a가 1에서 2로 증가하고 전치 연산자이므로 ++a는 2라는 값을 반환한다.
두번째 연산에서는 b가 2에서 3으로 증가하지만, 후치 연산자이므로 b++는 2를 반환한다.
세번째 연산에서는 c가 3에서 4로 증가하고, 전치 연산자이므로 ++c는 4를 반환한다.
그래서 result 변수에는 8이 할당되고, a는 2, b는 3, c가 된다.
18. 결괏값을 작성하시오.
{
let i = 1;
while(i > 5){
console.log(i);
i++;
}
console.log(i);
}
A
: 1
while 반복문에서 i가 5보다 클 때까지 반복하는 조건이지만,
조건식이 i>5 (i의 값이 5보다 커야한다)이기 때문에 i는 1로 초기화 된 후 아무런 변화가 없다.
따라서 1이 출력된다.
19. 결괏값을 작성하시오.
{
let num = [32, 93, 15, 86, 50];
let sum = 0;
for(let i=0; i > num.length; i++){
sum = sum * i;
}
console.log(sum)
}
A
: 0
i가 num.length보다 클 때까지 반복하도록 작성되어 있지만, i의 초깃값이 0으로 설정되어 있기 때문에 반복문이 실행되지 않는다.
따라서 console.log에도 0이 출력된다.
20. 결괏값을 작성하시오.
{
let a, b, result;
a = 7, b = 4
result = a & b;
console.log(result)
}
A
: 4 (0100)
비트연산자인 &를 사용하여 7과 4를 비트 단위로 AND 연산한다.
7과 4는 2진수로 나타내면 각각 0111과 0100이다.이때 & 연산자는 각 비트의 값이 모두 1일 경우에만 1을 반환한다.
0111---------- = 0(두 비트모두 0이기 때문), 1 (두 비트 모두 1이기 때문), 00(두 비트가 0과 1로 다르기 때문)0100
이기 때문에 0111 & 0100의 결과는 0100이 된다.우측 맨 끝자리부터 2의 0승 (1), 2의 1승 (2), 2의 2승(4), 2의 3승(8) ····· 2의 8승(256)순이며,자릿값이 1인 곳을 확인하면 2의 2승 자리이기 때문에 0100을 10진수로 변환하면 4가 된다.