한 개의 문자열을 입력받아 해당 문자열에 알파벳 대문자가 몇 개 있는지 알아내는 프로그램
을 작성
그동안 반복문 사용 시for문
으로 작성했는데, 이 강의에서는 for...of
(링크)문을 주로 사용하고 있다.
fof...of
는 ES6에 추가된 문법이라고 한다. 익숙해지기 위해 되도록 for...of
를 사용하고자 한다.
function solution(s) { let answer = 0; for (let i of s) { if (65 <= i && i <= 90) answer++; } return answer; }
하지만 0을 반환했다. 문자열을 순회할 때 for...of
구문을 사용하고 있지만, 사용한 변수 i는 문자 하나가 아니라 문자의 유니코드 값이다. 따라서 if (65 <= i && i <= 90)와 같은 조건식은 올바르게 동작하지 않는다.
if
문에 유니코드로 조건식을 작성해서 풀 수 있지만 아스키코드를 사용하기 위해 .charCodeAt()
메서드를 사용하였다.
function solution(s) { let answer = 0; for (let i of s) { let char = i.charCodeAt(); // 문자의 아스키 코드 값 if (65 <= char && char <= 90) answer++; } return answer; } let str = "KoreaTimeGood"; console.log(solution(str));
(문자).charCodeAt()
or str.charCodeAt(index)
참고한 글 : [Javascript] 아스키 코드 활용(charCodeAt, fromCharCode) - https://velog.io/@rkio/Javascript