[JavaScript] String <-> Number 변환 `${}`

2022. 9. 24. 20:04CodingTest/JavaScript Q

문제) 나이에 따라 입력 값이 다르게 나오게 구현해주세요

  • 우리나라는 국민연금을 만 65세 부터 받을 수 있습니다.
  • nationalPensionRemainingYearCount  age_string 이라는 input을 받습니다.
  • age_string 은 나이 값인데 string형 값으로 되어 있습니다.
  • 주어진 나이부터 몇년이 지나야 국민연금을 받을수 있는지 리턴 해주세요.
  • 리턴 값은 다음과 같습니다.
  •  
  • "앞으로 20년 남으셨습니다"

     
     

프로그램을 잘못 짜면 날 수 있는 상황
console.log('200'+'10')            // string
console.log('200'-'10')            // number
console.log(200+'11')              // string
console.log('200'+11)              // string
console.log('200'-'안녕')         // NaN

 

String형 >>> Number형 변환하는 method
parseInt("1.901")               // 1
parseFloat("1.901")             // 1.901
Number("1.901")                 // 1.901
parseInt("200") + 1             // 201
Number형 >>> String형 변환하는 method
const str2 = (123).toString()            // 123, string
const str2 = String(123)                 // 123, string
const number = 123
const str1 = `${number}`                 // 123, string
const str2 = 123 + ""                    // 123, string

처음 age_string 매개변수가 string형 값으로  되어있어 number로 변환해고
다음 strA 변수에 65세 기준으로 들어오는 매개변수의 number 값에 따라 리턴하는 값을 설정해준다.
function nationalPensionRemainingYearCount(age_string) {
  let str = Number(age_string);
  let strA = 65 - str;
  if (str === 45) {
    return "앞으로 20년 남으셨습니다";
  } else if (str === 30) {
    return "35";
  } else if (str === 35) {
    return "앞으로 30년 남으셨습니다";
  } else if (strA) {
    return `앞으로 ${strA}년 남으셨습니다`
}
console.log(nationalPensionRemainingYearCount(44));

 

벡틱을 사용하여 3줄로 정리 할 수 있었다.
function nationalPensionRemainingYearCount(age_string) {
  let str = Number(age_string);
  let strA = 65 - str;
  return `앞으로 ${strA}년 남으셨습니다`;
}
console.log(nationalPensionRemainingYearCount(44));