예금을 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 안.
만약 함수 밖에서 선언되면 전역변수가 됨.
'코딩테스트' 카테고리의 다른 글
문자열의 끝에 이 문자가 있니? endWith() / substr() (0) | 2023.09.13 |
---|---|
"2개 숫자 모두 배수라면 1을 리턴해주세요" 공배수 문제 or연산자 이용한다구??? (0) | 2023.09.13 |
비트 연산자 _ shift operator (<<) (0) | 2023.09.08 |
함수의 파라미터로 받은 문자열을 obj 형식으로 알파벳 당 개수 보이게 만들기. (1) | 2023.09.06 |
perseInt() 함수 / JavaScript에서 입력값 string 타입으로 처리 (0) | 2023.06.26 |