출처) https://school.programmers.co.kr/learn/courses/30/lessons/12926
function solution(s, n) {
const temp=s.split('').map((el,idx)=>{
const charCode= el.charCodeAt()
let z=0
if(charCode<=64) return el
if(charCode>=65 && charCode<=90 && (charCode+n)>=91)
{z-=26}
if(charCode>=97&&charCode<=122 &&(charCode+n)>=123){z-=26}
return String.fromCharCode(charCode+n+z)})
return temp.join('')
}
String.fromCharCode(charCode+n+z)
로 n만큼 밀린 알파벳을 리턴 받고 그것을 temp 배열에 담는다.아스키코드를 사용하는 코드를 처음 작성해 보았다.
기본적으로 아래 코드 테이블을 활용한다.
문자열.charCodeAt(idx)
: index 에 해당되는 문자의 아스키 코드를 반환한다. idx를 비워두면 자동으로 맨 앞(idx=0)으로 실행된다.
String.fromCharCode(숫자)
: 아스키 코드 테이블에서 Dec 숫자에 해당되는 문자를 반환한다. charCodeAt의 반대 작용을 한다고 보면 된다.
변수타입이 런타임에 결정된다 ➡️ 오류 빈발, 오류를 찾기 난해함
약한 타입 체크
객체를 다룰때 의도에서 벗어난 객체 성질 변화에 취약
코드 편집기 혹은 컴파일 할때 오류 체크가 용이함
변수 타입이 런타임이 아닌 컴파일 하때 체크 됨
객체를 보다 엄밀하게 사용 가능!
코드의 유지 보수에 드는 시간과 노력 절감/가독성 증가
TS 특유의 안정성으로 테스트 코드가 줄어듬