형변환

Yeom Jae Seon·2021년 2월 20일
0

JavaScript

목록 보기
3/6
post-thumbnail

형 변환

  • 함수와 연산자에 전달되는 값은 대부분 적절한 자료형으로 자동 변환됨.
  • 이를 형 변환이라 한다.
  • 예로 수학 관련 연산자가 전달받은 값은 숫자로 변환된다.
    ex) "100" / 20 = 5, 문자열 100은 자동으로 Number로 형변환되어 연산되어짐.
  • 자동으로 형변환 외에 명시적으로 형변환도 가능하다.

문자형으로 변환

  • 문자형으로의 변환은 문자형의 값이 필요할때 일어남(당연함)
    ex) alert(100) 100은 문자형의 값이 필요하므로 100은 문자형으로 변환됨
  • 명시적으로 문자형 변환 : String(100)
  • undefined, null, true/false등의 문자형으로 형 변환은 ""만 붙여서 문자형으로 변환, 즉 예측 가능한 형태로 문자형으로 변환이 된다.

숫자형으로 변환

  • 수학과 관련된 함수와 표현식에서 자동으로 일어남(숫자형이 필요하닌까.)
    ex) "100" / 20 = 5
  • Number("100")함수를 통해 숫자형으로 명시적 형변환 가능
  • 숫자형으로 형변환 하려는 것이 숫자형태가 아니면 NaN이 된다. (NaN도 number자료형에 속한다.)
Number("나숫자아닌뎅."); // NaN
  • null을 숫자형으로 형변환하면 0이된다.
  • 반면에 undefined을 숫자형으로 형변환하면 NaN이된다.
  • Number(true) - 1, Number(false)- 0
  • Number(' 문자열입니다 ') - 처음과 끝 공백 제거하고 문자열 남아있으면 NaN, 문자열이 없다면 0.
Number('          123        '); // 123
Number('          '); // 0
Number(' ㅋㅋ룽'); // NaN

불리언 형으로 변환

  • 논리연산때 자동으로 형변환
  • Boolean함수를 통해 명시적으로 형변환 가능
  • Boolean 형변환은 무언가 직관적으로 비어있다 느껴지는 녀석들은 false
  • 그렇지 않은 녀석들은 true
Boolean(null) // false
Boolean(undefined); // false
Boolean(''); // false
Boolean(0); // false 
Boolean(100); // true
Boolean('안녕안녕') // true
  • Boolean(0) // falseBoolean('0') // true은 다르다. 후자는 비어있지 않은 문자열이므로 true로 변환됨

요약

  • 문자형, 숫자형, 불리언형으로 형변환은 해당 자료형이 필요할때 자동적으로 형변환되거나 함수를 이용해 명시적으로 형변환 가능하다.
  • 숫자형은 주로 연산시에 자동으로 형변환되고, 불리언형은 논리연산시에 자동으로 형변환 된다.
  • 숫자형으로 형변환 시 Number(undefined) // NaN이지만 Number(null) // 0이다.
  • 불리언형으로 형변환 시 Boolean(0) // false이지만 Boolean('0') // true이다.

0개의 댓글