LHJ

I'm a FE developer.

12-4. Global 오브젝트 / 정수, 실수 변환

30 Nov 2020 » js_beginner

12-4. Global 오브젝트 / 정수, 실수 변환

parseInt()

구분데이터(값)
파라미터첫번째 파라미터 : 값
두번째 파라미터 : 진수, 디폴트(10진수)
반환변환한 값

  • 값을 정수로 변환화여 반환

    • 값이 123.56이면 123 반환

        console.log(parseInt(123.56)); // 123
      
      1. 소수를 제외하고 정수만 반환

  • 값이 “123px”이면 123 반환

    • 이 용도로도 많이 사용

        console.log(parseInt("-123.45")); // -123
        console.log(parseInt("123px")); // 123
        console.log(parseInt("12AB34")); // 12
      
      1. String 타입이라도 값이 숫자이면 변환
      2. “123px”에서 123은 변환하고 px은 변환하지 않음 (이는 스타일에서 많이 씁니다.)
      3. “12AB34”에서 12는 변환하고 AB와 34는 변환하지 않음

  • 0 또는 빈 문자열을 제외시킴

      console.log(parseInt("0012")); // 12
      console.log(parseInt("   123")); // 123
      console.log(parseInt()); // NaN
    
    1. 0012에서 00은 없어짐
    2. “   123”에서 앞의 공백을 무시하고 변환
    3. 값을 작성하지 않으면 NaN
      undefined가 아닌 것은 기준이 Number이기 때문
      파라미터를 숫자 개념으로 처리하기 때문에 NaN을 반환합니다.
  • 진수를 적용하여 값을 변환

      console.log(parseInt(13, 16)); // 19
      console.log(parseInt("0x13")); // 19
    
    1. 두번째 파라미터에 16진수 작성
      13을 16진수로 변환
      16 + 3은 19
    2. 0(숫자)x는 16진수를 나타냄

parseFloat()

구분데이터(값)
파라미터
반환변환한 값

  • 값을 실수로 변환하여 반환

    • JS는 기본적으로 실수로 처리하므로
    • 실수로 변환하는 것이 의미가 없지만
    • 문자열의 실수 변환은 의미가 있음
      console.log(parseFloat("-123.45") + 6); // -117.45
      console.log(parseFloat("12.34AB56")); // 12.34
    
    1. String 타입이지만 소수를 포함하여 변환
      -123.45에 6을 더하면 -117.45
    2. 12.34AB56에서 12.34는 변환되고 AB56은 변환되지 않음
    3. 문자 이후는 변환하지 않습니다.

  • 지수, 공백 변환

      console.log(parseFloat("1.2e3")); // 1200
      console.log(parseFloat("   12.34   ") + 20); // 32.34
      console.log(parseFloat()); // NaN
    
    1. 지수를 변환
    2. 앞뒤 공백을 제외하고 변환
      Number 타입의 12.34로 변환하므로 20을 더할 수 있음
    3. 값을 작성하지 않으면 NaN