• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

변환 질문입니다.

20.03.31 09:44 작성 조회수 114

0

JS는 연산하기 전에 숫자로 변환하여 undefined는 NaN의 값으로 변환되는데 JS 특성상 에러를 만들지 않으려고 NaN을 0으로 인식하여 처리하는 건가요? "1" + 1 = "11" 처럼요.

답변 1

답변을 작성해보세요.

0

JS는 연산하기 전에 숫자로 변환하여 undefined는 NaN의 값으로 변환되는데 JS 특성상 에러를 만들지 않으려고 NaN을 0으로 인식하여 처리하는 건가요? "1" + 1 = "11" 처럼요.  ==> 개념은 맞는데, 문장이 정확하지 않습니다.

JS는 연산하기 전에 숫자로 변환하여 ==> 이것은 맞습니다.

undefined는 NaN의 값으로 변환되는데 ==> undefined가 NaN로 변환되지 않습니다. 표현에 차이가 있습니다.

"1" + 1 = "11" 처럼요. ==> 이것은 숫자로 변환하는 것과는 관련이 없습니다. String 타입의 값과 Number 타입의 값을 더하면 값을 더하지 않고 문자열로 연결합니다. 이것이 정확한 표현입니다. 

slice() 메소드는 실행하기 전에 우선 파라미터 값을 숫자로 변환합니다. 이렇게 하는 것은 대상 문자열의 length 값이 필요하기 때문입니다. 이때 undefined와 NaN를 0으로 변환합니다. 단, 두 번째 파라미터가 undefined이면 length를 사용합니다. 이외에도 다른 예외 사항이 있으면 "MDN slice"로 검색하여 String 오브젝트의 slice()를 참조하기 바랍니다.