문자열 다루기 기본


function solution(s) {
  const l = s.length;
  if (l !== 4 && l !== 6) return false;

  // return s.split('').map(Number).filter(isNaN).length === 0;
  return Number(s) === parseInt(s);
}
function solution(s) {
  return s.length === 4 || s.length === 6 ? ![...s].map(Number).includes(NaN) : false;
}

문자열 s의 길이가 4 혹은 6이라면, NaN이 배열 안에 없으면 true를 반환한다.

function solution(s) {
  const regex = /^\d{4}$|^\d{6}$/g;
  return regex.test(s);
}

4 길이의 숫자로 시작하고 끝나거나 6길이의 숫자로 시작하고 끝난다면 true를 반환한다.


NaN 특징


NaN 특징:

typeof NaN; // 'number'

NaN은 판별에 주의해야하는데,

1. isNaN(NaN) // true

2. NaN === NaN // false
3. [1,2,NaN,4].indexOf(NaN) // -1
4. [1,2,NaN,4].includes(NaN) // true

따라서 자료구조에서 NaN를 구별해야하는 로직에서는 isNaN() 함수를 사용하는 것이 바람직해보인다.