코딩테스트

var / let / const 확실히 알기

GABOJOK 2023. 6. 26. 22:22

 

 

예금을  5만원 미만인 경우 연 이자 15%, 5만원 이상인 경우 연 이자 20%일때,

예금에 따른 2년후 만기 금액을  계산해 주는 함수를 만들자.

 

 

var money = 60000;

    

        function 예금(money){

            var future = 0;

 

            if(money < 50000 && money > 0){

                let a =  money*1.15*1.15

                future += a

            }else{

                let a = money*1.2*1.2

                future += a       

            }

            return future;

        }

        console.log(예금(money));

 

 

 

예금 문제  실패 이유  

 1. 무분별한 let 사용. money 같은 경우에는 함수에서 매개변수로 쓰임으로 var로 선언해야함.

        // 여기서 변수 선언방식에 따른 스코프의 차이가 있는데, 

        // var는 함수스코프 가지고 있다.

        // 함수 내에서 선언된 변수는 함수 내부 어디든 접근이 가능함. 함수 외부에서 선언된 변수는 전역변수로 취급.

        // let은 블록스코프 가지고 있다. 중괄호로 둘러싸인 코드안에서만 유효.

 

2. 계산 실수.. ㅋㅋㅋㅋㅋㅋㅋㅋ 검증 또 확인 또 확인.....필수.....

 

3. future 값을 console.log 로만 찍은것. console.log()의 위치와 return 해야하는 성질을 빨리 알아차리기.

        // 지금 이 경우에는 우리가 최종적으로 궁금한게 money 값에 따른 future 값이니까.                                                        // 콘솔로는 예금함수에 파라미터로 money를 대입해서 실행시킨 값을 보고,

        // 그 함수를 실행햇을때, return값으로 최종궁금한  future를 넣어줘야 했던것.

 

        //추가로 제곱연산은 ** 쓰면됨. 2 5승을 하고싶으면  2**5 라고 입력하면 32 라고  나옴.

 

 

 

 

변수

1. let 

            재할당 가능.    let a= 2; a=6;.

            재선언 불가.    let a = 2; let a = 6; 

            변수의 범위는 모든 {} 안.

 

 

2. const

            재할당, 재선언 다 불가.

            변수의 범위는 모든 {} 안.

 

3. var

            es6 이전 변수 문법.

            오류 많으니 자제. 

            그러나 재할당, 재선언 가능.

            변수의 범위는 function

            만약 함수 밖에서 선언되면 전역변수가 됨.