728x90
반응형

 

1. 결괏값을 작성하시오.

 (function(){
        console.log("함수가 실행되었습니다.");
    })();

: 함수가 실행되었습니다.

 

즉시 실행 함수로, 함수를 이름 없이 정의하고 즉시 실행하기 때문에 함수를 정의하는 즉시 함수 호출을 통해 실행된다.

 

 

 

 

2. 결괏값을 작성하시오.

 function func(str = "함수가 실행되었습니다."){
        document.write(str);
    }
    func();

 

A

: 함수가 실행되었습니다.

 

func라는 ㄴ함수를 정의하고, 문자열 매개변수 str을 전달받아 document.write( ) 메서드를 사용하여 화면에 출력한다.

str 매개 변수는 "함수가 실행되었습니다." 라는 기본값을 가지고 있다.

함수가 호출 될 때 인수를 전달하지 않으면, 이 기본값이 str인 매개 변수로 사용된다.

 

func( ); 구문은 func 함수를 호출하는데, 이 경우 인수를 전달하지 않았으므로 str 매개 변수의 기본값인 "함수가 실행되었습니다." 가 출력된다.

 

 

 

 

 

3. 결괏값을 작성하시오.

let sum = 0;
    for(var i=1; i<=10; i+=2) {
        sum += i;
    };
    document.write(sum);

 

A

: 25

 

변수 sum을 0으로 초기화 하고, 1부터 10까지의 홀수를 더하는 문제이다.

for문에서 i 변수를 1에서 시작하여 2씩 증가 시키면서 sum 변수에 i 값을 더한다.

for문이 실행되는 동안 sum 변수에 누적된 값은 1+3+5+7+9 = 25가 된다.

 

 

 

 

 

4. 결괏값을 작성하시오.

const obj = {
        a: 100,
        b: 200,
        c: "javascript"
    }
    const { a, b, c } = _______;

    document.write(a);
    document.write(b);
    document.write(c);

A

:obj

 

객체 리터럴을 사용하여 obj 변수를 정의하고 객체 속성 a, b, c에 각각 100, 200, javascript 값을 할당한다.

const {a,b,c} =                 ; 구문에서는 객체 디스트럭처링(Object destucturing) 문법을 사용하여 obj 객체의 속성을 각각 a, b, c 변수에 할당한다.

객체 obj에 값을 할당해야 하기 때문에 빈 칸에는 obj가 들어가야 한다.

 

 

✏ 객체 디스트럭처링 (Object destructuring) 문법

:ES6 (2015)부터 도입된 기능으로, 객체 속성의 값을 추출하여 변수에 할당하는 방법을 제공한다.

필요한 속성만을 선택하여 변수에 할당할 수 있으며, 기본값 설정도 가능하다.

객체에 해당 속성이 없는 경우 기본값이 할당 되는 것이다.

이 기능은 함수의 매개변수에서도 사용할 수 있다.

 

 

 

 

 

5. 결괏값을 작성하시오.

const objA = {
        a: 100,
        b: 200
    }
    const objB = {
        c: "javascript",
        d: "jquery"
    }
    const spread = {______, ______}

    document.write(spread.a);
    document.write(spread.b);
    document.write(spread.c);
    document.write(spread.d);

 

A

: ...objA, ...objB

 

객체 리터럴을 사용하여 objA, objB 변수를 정의하고, 각각의  객체 속성 a,b,c,d에 각각의 값을 할당하는 문제이다.

const spread = {                                   } 구문에서는 객체 스프레드 문법을 사용하여 objA, objB 객체의 속성을 모두 포함하는 새로운 객체를 생성한다.

따라서 spread 객체는 objA와 objB 객체의 모든 속성을 포함하게 된다.

 

 

 

 

 

6. 결괏값을 작성하시오.

 if( _____ ){
        document.write("조건문이 실행되었습니다.(true)");
    } else {
        document.write("조건문이 실행되었습니다.(false)");
    }

    //document.write("조건문이 실행되었습니다.(false)");
    //보기
    //true, false, 1, "1", "", 0, null, undefined, [], {}
더보기

작성한 답 : false, 0 , null, undefined 

 

※ 블린, 0, 값이 할당되지 않음(undefined), null은 전부 조건식에 작성했을 때 false가 되는 것들이다.

빈 객체와 빈 배열은 포함되지 않고 빈 "문자열"은 포함된다.

빈 "문자열"도 해당된다는 사실을 잊어버리지 않을 것.

: false,  " "(빈 문자열), 0, null, undefined

 

 0을 제외한 모든 숫자와 문자를 조건식에 넣게 되면 전부 true가 된다.

하물며 빈 배열을 넣어도 결과값은 true가 된다.

또한, 조건식에 불린도 넣을 수 있으며, true를 넣으면 true가, false가 된다.

데이터에 값이 없으면(null, undefined를 작성하면) false가 된다.

 

 

 

 

7. 결괏값을 작성하시오.

  if( num == 100 ){
        document.write("true");
    } else {
    	document.write("false");
    }

 

A

: (num == 100) ? document.write("true") : document.write("false")

 

삼항연산자의 형식은 (조건식) ? 참인 경우 실행문 : 거짓일 경우 실행문 이다.

조건식의 소괄호는 ( ) 생략할 수 있으며, 조건문과 실행문 사에는 ? (물음표)가 참일 때의 실행문과 거짓일 때의 실행문 사이에는 : (콜론)이 들어간다.

 

 

 

 

8. 결괏값을 작성하시오.

for(var i=1; i<=1; i++){
        document.write(i);
        for(var j=1; j<=5; j++){
            document.write(j);
        }
    }

 

A

: 1

  1 2 3 4 5

 

외부 for문은 변수 i가 1부터 1까지 반복된다. (i<=1이기 때문)

따라서 내부 for문도 한 번만 반복된다.

내부 for문의 변수 j는 1부터 5까지 반복된다. (j<=5이기 때문)

따라서 내부 for문은 1, 2, 3, 4, 5를 순서대로 출력한다.

 

 

 

 

 

9. 결괏값을 작성하시오.

  const num = [100, 200, 300, 400, 500];

    for(let i=0; i<num.length; i++){
        document.write(_______);
    }

 

A

: num [i]

 

for문에서 반복문 변수 i는 배열 num의 인덱스 값(자리값/키)을 나타낸다.

따라서 num[i]와 같이 인덱스 값을 사용하여 배열 요소에 접근할 수 있다.

 

 

 

 

 

10. 결괏값을 작성하시오.

 const num = [100, 200, 300, 400, 500];

    num.forEach(function(el){
        document.write(________);
    });

 

A

:el

 

forEach( ) 메서드는 배열의 요소 값, 키 값, 배열 전체를 받아올 수 있다.

이 문제에서는 배열의 요소 값만 받아오게 된다.

 

그 요소 값을 출력하기 위해서는 빈 칸에 el 즉 (element)가 들어가게 된다.

 

 

 

 

 

11. 다음을 보고 리턴값을 생략하여 한 줄로 표현하시오.

const func = str => {
        return str;
    }

 

 

A

: const func = str => str;

 

return값이 생략되기 때문에 return 구문 없이 바로 str이 된다.

 

 

 

 

 

12. 다음의 결괏값을 보고 빈 칸을 채우시오.

 const num = [100, 200, 300, 400, 500];

    for(let index of _____ ){
        document.write(index);
    }

 

A

: num

 

for of 문은 반복할 수 있는 객체의 모든 요소에 대해 반복문을 수행한다.

배열은 반복 가능한 객체이기 때문에 for of를 사용하여 배열의 모든 요소에 대해 반복문을 수행할 수 있다.

이 문제에서의 반복 변수 index는 배열 num의 요소 값 자체가 된다.

따라서 배열 num을 타깃으로 설정해 주기 위해 num을 작성한다.

 

 

 

 

13. 다음의 결괏값을 보고 빈 칸을 채우시오. 

function func(){
        let i = 5, j = 4, k = 1, l, m;
        l = i > 5 || j != 0;
        m = j <= 4 && k < 1;
        document.write(l);
        document.write(m);
    }
    func();
더보기

작성한 답

: 4

 

※논리 연산식이므로 값이 정수가 아니라 true와 false의 값을 반환한다.

 

A

: true     false

 

이 문제는 논리 연산자를 사용하는 문제이다.

함수 func( ) 안에서 변수 i, j, k, l, m을 선언하고 이들 변수에 값을 할당한다.

그 다음 논리 연산자 || (OR)과 &&(AND)를 사용하여 두 개의 논리식을 평가한다.

 

첫 번째 논리식(l = i > 5 || j != 0;) 에서는 변수 i가 5보다 크거나 (j의 값은 무시) j가 0이 아니어야 한다는 뜻이다.

그러나 i의 값은 5이고, j는 0이 이나므로 이 논리식의 값은 true가 된다.

 

두 번째 논리식(m = j <= 4 && k < 1;)에서는 변수 j가 4보다 작거나 같지 않으며 변수 k의 값이 1보다 작아야 한다는 의미이다.

그러나 변수 j가 4보다 작거나 같지 않으므로 m 변수의 값은  false가 된다.

 

 

 

 

14. 다음의 결괏값을 보고 빈 칸을 채우시오.

 const arr = [100, 200, 300, 400, 500];
    const text = arr.push(600);

    document.write(arr);

    const arr2 = [100, 200, 300, 400, 500];
    const text2 = arr2.unshift(600);

    document.write(arr2);

 

A

: 100, 200, 300, 400, 500, 600

   600, 100, 200, 300, 400, 500

 

문자열 메서드 push( )는 배열의 마지막 요소에 값을 추가하고 unshift는 문자열의 처음에 값을 추가한다.

 

 

 

 

 

15. 다음의 결괏값을 보고 빈 칸을 채우시오.

const obj = {
        a: 100, 
        b: 200
    };

    for(let key in obj) { 
        console.log(key);
    }

 

A

: a, b

 

이 문제는 obj(객체)의 키를 출력하는 구문이다.

여기서 객체의 키는 a, b이므로 출력되는 값은 a, b이다.

 

 

 

 

 

16. 다음의 결괏값을 보고 빈 칸을 채우시오.

let num = 0;

    while(false){
        num++;
        if( num == 3 ){
            continue;
        }
        if( num > 6 ){
            break;
        }
    }
    console.log(num);

 

A

: 0

 

while문을 사용하는 예시이다.

그러나 이 문제에서는 조건식이 항상 false이므로 while 문의 내부 코드는 실행되지 않는다.

즉, num 변수의 값은 0으로 유지된다.

 

 

 

 

17. 다음의 결괏값을 보고 빈 칸을 채우시오.

 let a, b, result;
    a = 7, b = 4
    result = a & b;

    console.log(result, a, b)

 

A

: 4   7    4

 

비트 AND 연산자(&)를 사용하여 두 개의 숫자를 비트 단위로 AND 연산하는 문제이다.

먼저 a와 b 변수에 각각 7과 4의 값을 할당한다.

그 다음 a & b 연산을 수행하고 결과값을 result 변수에 할당한다.

 

7은 2진수로 나타내면 0111이고, 4는 0100dlek.

비트 AND 연산은 각 비트별로 AND 연산을 수행하므로 다음과 같이 계산된다

   0111 (7)

&0100 (4)

------------

   0100 (4)

 

 

 

 

 

18. 다음의 결괏값을 보고 빈 칸을 채우시오.

 let a = 1, b = 2, c = 3, result;
    result = ++a + b++ + ++c;

    console.log(result);
    console.log(a);
    console.log(b+c);
    console.log(c);

 

A

: 8   2   7   4 

 

먼저 a, b, c 변수에 각각 1, 2, 3의 값을 할당한다.

그리고 ++a와 ++c를 실행하여 각각 1씩 증가시킨다.

그러면 a는 2, c는 4가 된다.

b는 후치 연산자로 2의 값을 그대로 가지고 있는 상태이다.

(b++는 후치 연산자이므로 =보다 우선순위가 낮아 연산되지 않는다)

 

++a의 값 2, 와 b (2)그리고 ++c의 값 4를 더한 결과를 result 변수에 할당한다.

즉, result의 값은 8이 된다.

 

cosole.log에서 ++a는 1에서 1을 증가시켜 2가 되고, 

b++는 2에서 1을 증가시켜 3이 되고,

++c는 3에서 1을 증가시켜 4가 된다.

 

 

 

 

 

19. 다음의 결괏값을 보고 빈 칸을 채우시오.

let data = [70, 80, 75, 60, 90];
    let best = 0;
    let score = 0;

    for(let i=0; i<data.length; i++){
        if(data[i]>80) {
            best++;
        }
        if(score < data[i]) {
            score = data[i];
        }
    }

    console.log(best, score)

 

best : 1     score: 90

 

이 문제에서 data 변수는 숫자 데이터를 담은 배열이다.

코드는 이 숫자들 중에 80 이상인 수의 개수와 가장 높은 수를 출력한다.

 

best 변수는 초기값으로 0을 가지고 있다.

이 변수는 for문을 통해 배열을 순회하면서, 80 이상인 수를 세기 위해 사용된다.

만약 배열에서 현재 값이 80 이상이라면 best 변수의 값을 1 증가 시킨다.

 

score 변수는 초기값으로 0을 가지고 있다.

이 변수는 for문을 통해 배열을 순회하면서 가장 높은 수를 찾기 위해 사용된다.

만약 배열에서 현재 수가 score 변수보다 크다면 score 변수의 값을 해당 점수로 대체한다.

 

실행 시 best 변수의 값은 1이 되고  (90만이 80보다 크기 때문) score 변수의 값은 90이 된다. (배열 안에서 가장 큰 수가 90이기 때문)

 

 

 

 

 

20. 다음의 결괏값을 보고 빈 칸을 채우시오.

function func(num1, num2){
        if(num1 > num2) return num1
        else return num2
    }
    console.log(func(10, 23) + func(40, 50))

 

A

: 73

 

이 문제는 두 개의 숫자 중에서 더 큰 값을 반환하여 서로 더하는 문제이다.

 

func 함수는 두 개의 숫자를 인자로 받는다.

만약 첫 번째 인자 num1이 두 번째 인자 num2 보다 크다면 num1을 반환하고, 그렇지 않으면 num2를 반환한다.

 

func(10,23)은 num1(10)이 num2(23)보다 작기 때문에 num2인 23을 반환하고,

func(40, 50)은 num1(40)이 num2(50) 작기 때문에 num2인 50을 반환한다.

 

따라서 func(10,23) + func(40,50)은 23+50 즉, 73이 된다.

 

 

 

 

 

 

 

+ Recent posts