문자열 다루기 기본

function solution(s) {
return Number(s) === parseInt(s) && (s.length === 4 || s.length === 6)
}
=> Number()와 parseInt()의 차이!
예제 1. '102022'
Number('102022') // 102022 parseInt('102022') // 102022
예제 2. '10기'
Number('10기') // NaN parseInt('10기') // 10
예제 3. '프론트 10기'
Number('프론트 10기') // NaN parseInt('프론트 10기') // NaN
예제 4. '3.145896', '3.145896점'
Number('3.145896') // 3.145896 Number('3.145896점') // NaN parseInt('3.145896') // 3 parseInt('3.145896점') // 3
=> parseInt는 정수로 값을 반환하기 때문에 뒤에 문자열은 영향을 받지 않고 버림.
Number은 숫자인 것만 숫자로 바꿔줌 숫자가 아닌게 하나라도 있다면 NaN을 반환.
Numner(s) === parseInt(s)
=> Number(s)는 숫자가 아닌 것은 무조건 NaN값을 반환, parseInt(s)는 문자열이 나오기 직전까지의 숫자를 반환
즉, Number(s)와 parseInt(s)는 s가 숫자로만 이루어진 문자열이여야지만 같게 나옴
function solution(s) {
if (s.length === 4 || s.length ===6) {
if (s.includes('e')) return false
return !isNaN(s)
}else return false
}
=> 문자열의 길이 조건을 통과하면, 그 문자열에 'e'가 포함되어 있는지 판별해야한다. 왜냐하면 자바스크립트에서 'e'는 지수로 쓰이기 때문에 '1.2e+3'과 같이 e가 들어간 문자열도 숫자로 판단하기 때문이다. 그래서 e가 있으면 문자열로 판단하는 조건을 붙여주었다.
e가 포함되어 있지 않다면 isNaN함수의 결과를 !연산자를 이용해 판별한다. (isNaN은 숫자가 아니면 true를 반환하므로 문제에서는 숫자일 때 true를 반환해야하므로 !사용)