var str = "문자열";
var len = str.length;
length를 사용할 수 있다.new String(str)을 호출한 것처럼 문자열을 객체로 자동으로 변환해 준다.Number() 생성자 함수를 통해 생성할 수 있다.const obj = new Number();0을 할당한다.NaN을 반환한다.Number.MAX_VALUEJavaScript에서 표현할 수 있는 가장 큰 양수 값이다.
Infinity와 비교하면 Infinity가 더 크다.
console.log(Number.MAX_VALUE); // 1.7976931348623157e+308
지수 표기법
알파벳 e를 사용한 표기하는 방법을 지수 표기법이라고 한다.
왼편의 수에 오른쪽 수만큼 10의 거듭제곱을 곱하는 의미가 담겨 있다.
console.log(25e5); // 2500000
Number.MIN_VALUEJavaScript에서 표현할 수 있는 가장 작은 양수 값이다.
console.log(Number.MIN_VALUE); // 5e-324
Number.MAX_SAFE_INTEGER, Number.MIN_SAFE_INTEGERJavaScript에서 안전하게 표현할 수 있는 가장 큰/작은 정수 값이다.
“안전하게”의 의미
- JavaScript가 정확하게 표현할 수 있는 가장 큰/작은 정수이다.
- 이 값을 넘어서면 정밀도 손실이 발생하기 때문에 “안전한” 범위라고 부른다.
console.log(Number.MAX_SAFE_INTEGER); // 9007199254740991
console.log(Number.MIN_SAFE_INTEGER); // -9007199254740991
Number.POSITIVE_INFINITY, Number.NEGATIVE_INFINITY양/음의 무한대를 나타내는 숫자 값 Infinity/-Infinity와 같다.
console.log(Number.POSITIVE_INFINITY); // Infinity
console.log(Number.NEGATIVE_INFINITY); // -Infinity
Number.NaN숫자가 아닌 것을 나타내는 숫자의 값이다.
console.log(Number.NaN); // NaN
Number.EPSILON부동 소수점으로 인해 발생하는 오차를 해결하기 위해 사용한다.
컴퓨터가 실수를 저장하는 방식이다.
제한된 비트로 무한한 실수를 표현하려고 하니 근사값만 저장이 가능하다.
그래서 일부 소수는 정확하게 표현이 불가능 하다.
EX) 0.1 + 0.2 ≠ 0.3
부동 소수점 표현은 2진법으로 변환 했을 때 무한 소수가 되어 미세한 오차가 발생할 수 밖에 없다.
1과 1보다 크지만 가장 근접한 숫자와의 차이와 같다.
console.log(Number.EPSILON); // 2.220446049250313e-16
Number.isFinite인수로 전달된 숫자 값이 정상적인 유한수인지 검사 후 반환한다.
결과는 boolean 타입으로 반환 한다.
console.log(Number.isFinite(10)); // true
Number.isInteger인수로 전달된 숫자 값이 정수인지 검사 후 반환한다.
결과는 boolean 타입으로 반환 한다.
console.log(Number.isInteger(10)); // true
console.log(Number.isInteger(10.10)); // false
Number.isNaN인수로 전달된 숫자 값이 NaN인지 검사 후 반환한다.
결과는 boolean 타입으로 반환한다.
console.log(Number.isNaN(NaN)); // true
console.log(Number.isNaN(undefined)); // false
Number.isSafeInteger인수로 전달된 숫자 값이 안전한 정수인지 검사 후 반환한다.
결과는 boolean 타입으로 반환한다.
console.log(Number.isSafeInteger(10)); // true
console.log(Number.isSafeInteger(10.10)); // false
Number.toExponential숫자를 지수 표기법으로 변환해 문자열로 반환한다.
e 앞에 있는 숫자에 10의 n승을 곱하는 형식으로 수를 나타낸다.
console.log((1.23456).toExponential()); // 1.23456e+0
Number.toFixed숫자를 반올림하고 문자열로 반환한다.
반올림 하는 소수점 이하의 자리수를 나타내는 0~20 사이의 정수 값을 인수로 전달할 수 있다.
console.log((1.23456).toFixed()); // 1
Number.toPrecision인수로 전달 받은 전체 자릿수까지 유효하도록 나머지 자릿수를 반올림해 문자열로 반환한다.
0~21 사이의 정수 값을 인수로 전달할 수 있다.
생략하면 기본 값 0이 지정 된다.
console.log((123.456).toPrecision(5)); // 123.46
Number.toString숫자를 문자열로 변환하여 반환한다.
진법을 나타내는 2~36 사이의 정수 값을 인수로 전달할 수 있다.
console.log((100).toString(2)); // 1100100
Math.PI원주율 PI 값을 반환한다.
console.log(Math.PI); // 3.141592653589793
Math.abs인수로 전달된 숫자의 절댓값을 반환한다.
console.log(Math.abs(-10)); // 10
console.log(Math.abs(10)); // 10
Math.round인수로 전달된 숫자의 소수점 이하를 반올림 한 정수를 반환한다.
console.log(Math.round(10.1)); // 10
console.log(Math.round(10.11)); // 10
Math.ceil인수로 전달된 숫자의 소수점 이하를 올림 한 정수를 반환한다.
console.log(Math.ceil(10.1)); // 11
console.log(Math.ceil(10.11)); // 11
Math.floor인수로 전달된 숫자의 소수점 이하를 내림한 정수를 반환한다.
console.log(Math.floor(10.1)); // 10
console.log(Math.floor(10.11)); // 10
Math.sqrt인수로 전달된 숫자의 제곱근을 반환한다.
console.log(Math.sqrt(4)); // 2
console.log(Math.sqrt(2)); // 1.4142135623730951
Math.random임의의 난수(0에서 1 미만의 실수)를 반환한다.
console.log(Math.random()); // 1~100 사이의 난수를 추출한다
Math.pow첫 번째 인수를 두 번째 인수로 거듭 제곱한 결과를 반환한다.
ES7에서 도입된 지수 연산자(**)로 대신해 사용할 수 있다.
console.log(Math.pow(2, 2)); // 4
console.log(2 ** 2); // 4
Math.max전달 받은 인수 중 가장 큰 수를 반환한다.
console.log(Math.max(10, 20, 30)); // 30
Math.min전달 받은 인수 중 가장 작은 수를 반환한다.
console.log(Math.min(10, 20, 30)); // 10
Date 객체는 내부적으로 날짜와 시간을 나타내는 정수 값을 가진다.new Date()현재 날짜와 시간을 나타낸다.
// 1. new Date() : 현재 날짜와 시간을 가지는 Date 객체 반환
console.log(new Date());
// 2. new Date(milliseconds) : 1970년 1월 1일 00:00:00(UTC)를 기점으로 인수로 전달 된 밀리초만큼 경과한 날짜와 시간을 나타내는 Date 객체 반환
console.log(new Date(0)); // 1970-01-01T00:00:00.000Z
console.log(new Date(24 * 60 * 60 * 1000)); // 1970-01-02T00:00:00.000Z
// 3. new Date(dateString) : 날짜와 시간을 나타내는 문자열을 인수로 전달하면 지정 된 날짜와 시간을 나타내는 Date 객체 반환
console.log(new Date('Jul 26, 2022 09:00:00')); // 2022-07-26T00:00:00.000Z
console.log(new Date('2022/07/26/09:00:00')); // 2022-07-26T00:00:00.000Z
// 4. new Date(year, month[, day, hour, minute, second, millisecond]) : 연, 월, 일, 시, 분, 초, 밀리초를 의미하는 숫자를 인수로 전달하면 지정 된 날짜와 시간을 나타내는 Date 객체 반환
// 연, 월은 반드시 지정해야 하며 지정하지 않은 정보는 0 또는 1로 초기화 된다
// month(0~11)에 주의한다
console.log(new Date(2022, 1)); // 2022-01-31T15:00:00.000Z
console.log(new Date(2022, 1, 1, 9, 0, 0, 0)); // 2022-02-01T00:00:00.000Z
날짜와 시간을 나타내는 문자열을 인수로 전달하면 지정된 날짜와 시간을 나타내는 Date 객체를 반환한다.
연, 월, 일, 시, 분, 초, 밀리초를 의미하는 숫자를 인수로 전달하면 지정된 날짜와 시간을 나타내는 Date 객체를 반환한다.
Date.now1970년 1월 1일 00:00:00(UTC)를 기점으로 현재 시간까지 경과한 밀리초를 숫자로 반환 한다.
console.log(Date.now()); // 1749708974423
Date.parse1970년 1월 1일 00:00:00(UTC)를 기점으로 인수로 전달된 지정 시간까지의 밀리초를 숫자로 반환한다.
new Date(year, month[, day, hour, minute, second, millisecond]) 같은 형식의 인수를 사용한다.
인수는 KST가 아닌 UTC로 인식된다.
console.log(Date.parse('Jan 1, 1970 09:00:00')); // 0
console.log(Date.parse('Jan 1, 1970 09:00:00 UTC')); // 32400000
console.log(Date.parse('1970/01/01/09:00:00')); // 0
console.log(Date.parse('1970/01/01/09:00:00 UTC')); // 32400000
console.log(Date.UTC(1970, 0, 1)); // 0
특정 시간 반환
getFullYear : 년도 반환getMonth : 월 반환getDate : 일 반환getDay : 요일 반환getHours : 시 반환getMinutes : 분 반환getSeconds : 초 반환getMilliseconds : 밀리초 반환특정 시간 설정
setFullYear, setMonth, setDate, setHours, setMinutes, setSeconds, setMillisecondsgetTime, setTime
1970년 1월 1일 00:00:00(UTC)을 기점으로 경과된 밀리초를 반환/설정 한다.
const date = new Date();
console.log(date.getTime()); // 1749709529219
date.setTime(5 * 24 * 60 * 60 * 1000);
console.log(date); // Tue Jan 06 1970 09:00:00 GMT+0900 (대한민국 표준시)
getTimezoneOffset
UTC와 Date 객체에 지정된 로컬 시간과의 차이를 분 단위로 반환한다.
const today = new Date();
console.log(today.getTimezoneOffset()); // -540
to[~]String
문자열로 Date 객체의 날짜를 반환한다
console.log(today.toString()); // Thu Jun 12 2025 15:28:22 GMT+0900 (대한민국 표준시)
console.log(today.toLocaleTimeString()); // 오후 3:28:56
console.log(today.toDateString());
console.log(today.toTimeString());
console.log(today.toISOString());
console.log(today.toLocaleString());
new 연산자와 함께 호출해 String 인스턴스를 생성한다.
인수를 전달하지 않으면 빈 문자열을 할당한 객체를 생성한다.
인수로 문자열을 전달할 경우, 전달 받은 문자열을 할당한다.
원시 값이므로 변경이 불가능하다. 단, 에러는 발생하지 않는다.
문자열이 아닌 값을 인수로 전달할 경우 문자열로 강제 변환한다.
string method
String.indexOf전달한 값과 일치하는 첫 번째 인덱스를 반환한다
검색에 실패하면 -1을 반환한다
const str = 'JavaScript';
console.log(str.indexOf('a')); // 1
String.includes하나의 문자열이 다른 문자열에 포함되어 있는지 판별한 후 반환한다
결과는 boolean 타입으로 반환한다
const str = 'JavaScript';
console.log(str.includes('a')); // true
String.search인수로 전달 받은 정규 표현식과 매치하는 문자열을 검색해 일치하는 문자열 인덱스를 반환한다
const str = 'JavaScript';
console.log(str.search(/a/)); // 1
String.startsWith, String.endsWith어떤 문자열이 특정 문자로 시작/끝나는지 확인해 결과를 반환한다
결과는 boolean 타입으로 반환한다
const str = 'JavaScript';
console.log(str.startsWith('Ja')); // true
console.log(str.endsWith('pt')); // true
String.charAt문자열에서 특정 인덱스에 위치하는 유니코드 단일 문자를 반환한다
const str = 'JavaScript';
console.log(str.charAt(3)); // a
String.substringstring 객체의 시작 인덱스부터 종료 인덱스 전까지 문자열의 부분 문자열을 반환한다
두 번째 인수의 인덱스 위치 바로 이전 문자까지 반환한다
두 번째 인수 생략 시 문자열의 끝까지 반환한다
음수는 0으로 취급한다
length 보다 크면 length로 취급한다
const str = 'JavaScript';
console.log(str.substring(1,4)); // ava
String.slice문자열의 일부를 추출하면서 새로운 문자열을 반환한다
음수인 인수를 전달하면 가장 뒤에서부터 시작하고 잘라내 반환한다
const str = 'JavaScript';
console.log(str.slice(-1)); // t
String.toUpperCase, String.toLowerCase문자열을 대문자/소문자로 변환해 반환한다
const str = 'JavaScript';
console.log(str.toUpperCase()); // JAVASCRIPT
console.log(str.toLowerCase()); // javascript
String.trim문자열의 앞뒤 공백 문자 제거 후 반환한다
const str2 = ' JavaScript ';
console.log(str2.trim()); // JavaScript
String.repeat전달 받은 정수만큼 반복해 연결한 새로운 문자열을 반환한다
실수는 정수로 처리되고 음수는 에러가 발생한다
const str = 'JavaScript';
console.log(str.repeat(2)); // JavaScriptJavaScript
String.replace첫 번째 인수로 전달 받은 문자열 혹은 정규 표현식을 검색해 두 번째 인수로 치환한 문자열을 반환한다
검색된 문자열이 여러 개일 경우 첫 번째 문자열만 치환한다
const str = 'JavaScript';
console.log(str.replace('Java', 'Type')); // TypeScript
String.split첫 번째 인수로 전달한 문자열 혹은 정규식을 검색해 문자열을 구분한 후 분리된 각 문자열로 이루어진 배열을 반환한다
인수로 빈 문자열을 전달하면 각 문자를 모두 분리한다
인수를 생략하면 문자열 전체를 단일 요소로 하는 배열을 반환한다
두 번째 인수로 배열의 길이를 지정한다
const str3 = 'Hello, Everyone! Nice to see you again.';
console.log(str3.split(' ')); // ['Hello,', 'Everyone!', 'Nice', 'to', 'see', 'you', 'again.']