표준 빌트인 객체

MinSeok Kim·2024년 9월 23일
0
post-thumbnail

Number

표준 빌트인 객체인 Number는 원시 타입인 숫자를 다룰 때 유용한 프로퍼티와 메서드를 제공한다.

Number 생성자 함수

  • Number는 생성자 함수 객체이므로 new 연산자와 함께 호출하여 Number 인스턴스를 생성할 수 있다.
  • Number 생성자 함수에 인수를 전달하지 않고 new 연산자와 함께 호출하면 [[NumberData]] 내부 슬롯에 0을 할당한 Number 래퍼 객체 생성
  • 인수로 숫자가 아닌 값을 전달하면 인수를 숫자로 강제 변환 후 [[NumberData]] 내부 슬롯에 변환된 숫자를 할당한 Number 래퍼 객체 생성

Number 프로퍼티

Number.EPSILON

  • 1과 1보다 큰 숫자 중에서 가장 작은 숫자와의 차이와 같다.
  • 부동소수점으로 인해 발생하는 오차를 해결하기 위해 사용한다.
function isEqual(a, b){
  // a와 b를 뺀 값의 절대값이 Number.EPSILON보다 작으면 같은 수로 인정한다.
  return Math.abs(a - b) < Number.EPSILON;
}

isEqual(0.1 + 0.2, 0.3); // -> true

Number.MAX_VALUE

자바스크립트에서 표현할 수 있는 가장 큰 양수 값으로 이보다 더 큰 숫자는 Infinity 이다.

Number.MIN_VALUE

자바스크립트에서 표현할 수 있는 가장 작은 양수 값으로 더 작은 숫자는 0이다.

Number.MAX_SAFE_INTEGER

자바스크립트에서 안전하게 표현할 수 있는 가장 큰 정수 값이다.

Number.MIN_SAFE_INTEGER

자바스크립트에서 안전하게 표현할 수 있는 가장 작은 정수 값이다.

Number.POSITIVE_INFINITY

양의 무한대를 나타내는 숫자값 Infinity와 같다.

Number.NEGATIVE_INFINITY

음의 무한대를 나타내는 숫자값 -Infinity와 같다.

Number.NaN

숫자가 아님 (Not-a-Number)을 나타내는 숫자 값이다. window NaN과 같다.

Number 메서드

Number.isFinite

인수로 전달된 숫자값이 Infinity 또는 -Infinity인지 여부를 검사하여 불리언 값으로 반환한다.

// 인수가 정상적인 유한수이면 true를 반환한다.
Number.isFinite(0);                // -> true
Number.isFinite(Number.MAX_VALUE); // -> true
Number.isFinite(Number.MIN_VALUE); // -> true

// 인수가 무한수이면 false를 반환한다.
Number.isFinite(Infinity);  // -> false
Number.isFinite(-Infinity); // -> false
Number.isFinite(NaN); // -> false

Number.isFinite 메서드와 빌트인 전역 함수 isFinite와의 차이

빌트인 전역 함수 isFinite는 전달받은 인수를 암묵적 타입 변환하여 검사하지만 Number.isFinite는 암묵적 타입 변환하지 않기 때문에 숫자가 아닌 값이 주어지면 언제나 false를 반환한다.

Number.isInteger

  • 인수로 전달된 숫자값이 정수인지 여부를 검사하여 불리언 값으로 반환한다.
  • 검사전 인수의 암묵적 형변환이 없다.
// 인수가 정수이면 true를 반환한다.
Number.isInteger(0)     // -> true
Number.isInteger(123)   // -> true
Number.isInteger(-123)  // -> true

// 0.5는 정수가 아니다.
Number.isInteger(0.5)   // -> false
// '123'을 숫자로 암묵적 타입 변환하지 않는다.
Number.isInteger('123') // -> false
// false를 숫자로 암묵적 타입 변환하지 않는다.
Number.isInteger(false) // -> false
// Infinity/-Infinity는 정수가 아니다.
Number.isInteger(Infinity)  // -> false
Number.isInteger(-Infinity) // -> false

Number.isNaN

인수로 전달된 숫자값이 NaN인지 검사하여 그 결과를 불리언 값으로 반환한다.

Number.isNaN 메서드와 빌트인 전역 함수 isNaN과의 차이점

빌트인 전역 함수 isNaN은 인수를 암묵적 타입 변환하여 검사하지만, Number의 정적 메서드인 isNaN은 타입 변환을 하지 않기 때문에 숫자가 아닌 값이 주어지면 언제나 false를 반환한다.

Number.isSafeInteger

안수로 전달된 숫자값이 안전한 정수인지 검사하여 그 결과를 불리언 값으로 반환한다. 안전한 정수값은 -(253 - 1) 253 - 1 사이의 정수값이다. 검사 전에 인수를 숫자로 암묵적 타입 변환하지 않는다.

Number.prototype.toExponential

  • 숫자를 지수 표기법으로 변환하여 문자열로 반환한다.
  • 숫자 리터럴과 함께 Number 메서드를 사용할 경우 에러가 발생한다.

Number.prototype.toFixed

  • 숫자를 반올림하여 문자열로 반환한다.
  • 반올림하는 소수점 이하 자릿수를 나타내는 0 ~ 20 사이의 정수값을 인수로 전달 가능하다.
  • 생략하면 기본값 0이 지정된다.

Number.prototype.toPrecision

  • 인수로 전달받은 전체 자릿수까지 유효하도록 나머지 자릿수를 반올림하여 문자열로 반환한다.
  • 인수로 전달받은 전체 자릿수로 표현할 수 없는 경우 지수 표기법으로 결과를 반환한다.
  • 전체 자릿수를 나타내는 0~21 사이의 정수값을 인수로 전달할 수 있다. 인수를 생략하면 기본값 0이 지정된다.

Number.prototype.toString

  • 숫자를 문자열로 변환하여 반환한다.
  • 진법을 나타내는 2 ~ 36 사이의 정수를 인수로 전달할 수 있다.
  • 인수를 생략하면 10진법이 지정된다.

Math

Math 프로퍼티

Math.PI

원주율 PI 값을 반환한다.

Math 메서드

Math.abs

  • 인수로 전달된 숫자의 절대값을 반환한다
  • 절대값은 반드시 0 또는 양수이어야 한다.

Math.round

인수로 전달된 숫자의 소수점 이하를 반올림한 정수를 반환한다.

Math.ceil

  • 인수로 전달된 숫자의 소수점 이하를 올림한 정수를 반환한다.
  • 소수점 이하를 올림하면 더 큰 정수가 된다.

Math.floor

  • 인수로 전달된 숫자의 소수점 이하를 내림한 정수를 반환한다.
  • 소수점 이하를 내림하면 더 작은 정수가 된다.

Math.sqrt

인수로 전달된 숫자의 제곱근을 반환한다.

Math.random

  • 임의의 난수를 반환한다.
  • Math.random 메서드가 반환한 난수는 0에서 1미만의 실수이다.

Math.pow

첫 번째 인수를 밑으로, 두 번째 인수를 지수로 거듭제곱한 결과를 반환한다.

Math.max

  • 전달받은 인수 중에서 가장 큰 수를 반환한다. 인수가 전달되지 않으면 -Infinity를 반환한다.
  • 배열을 인수로 전달받아 최대값을 구하려면 apply 메서드 또는 스프레드 문법을 사용해야 한다.

Math.min

  • 전달받은 인수 중에서 가장 작은 수를 반환한다.
  • 인수가 전달되지 않으면 Infinity를 반환한다.

Date

날짜와 시간을 위한 메서드를 제공하는 빌트인 객체이자 생성자 함수

Date 생성자 함수

Date 생성자 함수로 생성한 Date 객체는 내부적으로 날짜와 시간을 나타내는 정수값을 갖는다.

new Date()

  • 현재 날짜와 시간을 가지는 Date 객체 반환한다.
  • new 연산자 없이 호출하면 Date 객체를 반환하지 않고 날짜와 시간 정보를 나타내는 문자열을 반환한다.

new Date(milliseonds)

숫자 타입의 밀리초를 인수로 전달하면 1970년 1월 1일을 기점으로 인수로 전달된 밀리초만큼 경과한 날짜와 시간을 나타내는 Date 객체를 반환한다.

new Date(dateString)

날짜와 시간을 나타내는 문자열을 인수로 전달하여 지정된 날짜와 시간을 나타내는 Date 객체를 반환한다.

new Date(year, month[, day, hour, minute, second, millisecond])

연, 월, 일, 시, 분, 초, 밀리초를 의미하는 숫자를 인수로 전달 (연, 월은 필수 지정)하면 지정된 날짜와 시간을 나타내는 Date 객체를 반환한다.

Date 메서드

Date.now

1970년 1월 1일을 기점으로 현재 시간까지 경과한 밀리초를 숫자로 반환한다.

Date.parse

1970년 1월 1일 00:00:00(UTC)를 기점으로 인수로 전달된 지정 시간까지의 밀리초를 숫자로 반환한다.

Date.UTC

  • 1970년 1월 1일 00:00:00(UTC)(UTC)을 기점으로 인수로 전달된 지정 시간까지의 밀리초를 숫자로 반환
  • new Date(year, month[, day, hour, minute, second, millisecond]) 형식의 인수를 사용해야 한다.

Date.prototype.getFullYear

  • Date 객체의 연도를 나타내는 정수를 반환한다

Date.prototype.setFullYear

  • Date 객체에 연도를 나타내는 정수를 설정한다.

Date.prototype.getMonth

Date 객체의 월을 나타내는 0 ~ 11의 정수를 반환한다.(1월 = 0 ~ 12월 = 11)

Date.prototype.setMonth

Date 객체에 월을 나타내는 0 ~ 11의 정수를 설정한다.(월 이외에 옵션으로 일도 설정 가능)

Date.prototype.getDate

Date 객체의 날짜(1 ~ 31)를 나타내는 정수를 반환한다.

Date.prototype.setDate

Date 객체의 날짜 (1 ~ 31)를 나타내는 정수를 설정한다.

Date.prototype.getDay

Date 객체의 요일(0 ~ 6)을 나타내는 정수를 반환한다.(일 = 0 ~ 토 = 6)

Date.prototype.getHours

Date 객체의 시간(0 ~ 23)을 나타내는 정수를 반환한다.

Date.prototype.setHours

Date 객체의 시간(0 ~ 23)을 나타내는 정수를 설정한다.(시간 이외에 옵션으로 분, 초, 밀리초도 설정 가능)

Date.prototype.getMinutes

Date 객체의 분(0 ~ 59)을 나타내는 정수를 반환한다.

Date.prototype.setMinutes

Date 객체의 분(0 ~ 59)을 나타내는 정수를 설정(분 이외에 옵션으로 초, 밀리초도 설정 가능)

Date.prototype.getSeconds

Date 객체의 초(0 ~ 59)을 나타내는 정수를 반환한다.

Date.prototype.setSeconds

Date 객체의 초(0 ~ 59)을 나타내는 정수를 설정한다.(초 이외에 옵션으로 밀리초 가능)

Date.prototype.getMilliseconds

Date 객체의 밀리초(0 ~ 999)을 나타내는 정수를 반환한다.

Date.prototype.setMilliseconds

Date 객체의 밀리초(0 ~ 999)을 나타내는 정수를 설정한다.

Date.prototype.getTime

1970년 1월 1일 00:00:00(UTC)(UTC)를 기점으로 경과된 밀리초를 반환한다.

Date.prototype.setTime

1970년 1월 1일 00:00:00(UTC)를 기점으로 경과된 밀리초를 설정한다.

Date.prototype.getTimezoneOffset

UTC와 Date 객체에 지정된 로캘 시간과의 차이를 분 단위로 반환한다. (UTC = KST - 9h)

Date.prototype.toDateString

사람이 읽을 수 있는 형식의 문자열로 Date 객체의 날짜를 반환한다.

Date.prototype.toTimeString

사람이 읽을 수 있는 형식으로 Date 객체의 시간을 표현한 문자열을 반환한다.

Date.prototype.toISOString

ISO 8601 형식으로 Date 객체의 날짜와 시간을 표현한 문자열을 반환한다.

Date.prototype.toLocaleString

인수로 전달한 로캘을 기준으로 Date 객체의 날짜와 시간을 표현한 문자열을 반환한다.(인수를 생략한 경우 브라우저가 동작 중인 시스템의 로캘을 적용)

Date.prototype.toLocaleTimeString

인수로 전달한 로캘을 기준으로 Date 객체의 시간을 표현한 문자열을 반환한다.(인수를 생략한 경우 브라우저가 동작 중인 시스템의 로캘을 적용)

profile
개념 정리 & 궁금한 것 파헤치기

0개의 댓글