Standard Object¶
- Javascript 언어 자체에 정의되어 있는 객체
- Object : 최상의 객체로서 JavaScript의 모든 객체들은 이 객체를 상속
- Number : 수치값에 대한 Wrapper 객체
- String : 문자열 데이터에 대한 Wrapper 객체
- Boolean : 논리값에 대한 Wrapper 객체
- Array : 배열 정의시 생성되는 객체
- Math : : 다양한 수학 함수 기능을 제공하는 객체
- Date : 날짜와 시간 정보 추출과 설정 관련 기능을 제공하는 객체
- Error : 런타임 오류가 발생할 때마다 Error 객체의 인스턴스가 생성되어 해당 오류의 정보 저장
throw new Error();
- Function : 함수 정의시 사용되는 객체
- RegExp: 정규표현식(패턴)을 이용하여 데이터를 처리하려는 경우 사용되는 객체
global 전역 객체와 wrapper 래퍼 객체¶
- 전역 객체 : JS에 미리 정의된 객체로 전역 property나 전역 함수를 담는 공간의 역할
- 전역 범위에서 this 연산자를 통해 접근
- 래퍼 객체: primitive type의 property에 접근할 때 생성되는 임시 객체
Number¶
- 숫자 값을 감싸고 있는 wrapper 객체 생성
64비트 부동 소수점 수¶
JS는 정수와 실수를 따로 구분하지 않고, 모든 수를 실수 하나로만 표현한다
-> 모든 숫자는 IEEE 754 국제 표준에서 정의한 64비트 부동소수점 수로 저장된다
0 ~ 51비트 | 52 ~ 62비트 | 63비트 |
---|---|---|
총 52비트의 가수 부분 | 총 11비트의 지수 부분 | 총 1비트의 부호 부분 |
- 정밀도는 정수부 15자리, 소수부는 17자리까지만 유효
- 아래와 같은 오차를 없애기 위해 '정수로 변환 + 계산 수행 + 실수로 재변환' 과정을 거치기도 함
진법 표현¶
- JS는 산술 연산 시 모든 수가 10진수로 자동 변환되어 계산
- toString()을 통해 해당 숫자를 여러 진법의 형태로 변환하여 문자열로 반환
var x = 0xAB; // 16진법으로 표현된 10진수 171 var y = 29; // 10진법으로 표현된 10진수 29 x + y; // 200 : 두 수 모두 10진법으로 자동 변환되어 계산됨 var num = 256; num.toString(2); // 100000000 : 2진법으로 변환 num.toString(8); // 400 : 8진법으로 변환 num.toString(10); // 256 : 10진법으로 변환 num.toString(16); // 100 : 16진법으로 변환 (num.toString(2) / 2); // 50000000 : 문자열은 자동으로 10진수로 변환되어 산술 연산
Infinity¶
- 사용자가 임의로 수정할 수 없는 읽기 전용 값이자 JS내에서 어떤 수보다도 큰 수
- Infinity : 양의 무한대
- -Infinity : 음의 무한대
var x = 10 / 0; // Infinity 반환
var y = Infinity * 1000 // Infinity 반환
var z = 1 / Infinity // 0 : infinity의 역수는 0 반환
NaN¶
- Not A Number, 숫자가 아니라는 뜻으로 정의되지 않거나 표현할 수 없는 값
- null : object 타입, 아직 값이 정해지지 않았음을 의미
- undefined : 하나의 독립적인 타입, 타입이 정해지지 않았음을 의미
- NaN : number 타입, 숫자가 아님을 의미
- Infinity: number 타입, 무한대 의미
값 | Boolean 문맥 | Number 문맥 | String 문맥 |
---|---|---|---|
null | false | 0 | "null" |
undefined | false | NaN | "Infinity" |
NaN | false | NaN | "NaN" |
Infinity | true | Infinity | "Infinity" |
Number Method¶
- Number.parseFloat() : 문자열을 파싱하여 숫자 부분을 실수 형태로 반환
- Number.parseInt() : 문자열을 파싱하여 숫자 부분을 정수 형태로 반환
- Number.isNaN() : isNaN() 함수와 달리 오직 숫자인 값에서만 동작하며 그 값이 NaN인 경우에만 true 반환
- Number.isFinite() : 유한한 수인 경우 true, 아니면 false 반환 (강제 변환하지 않음)
- Number.isInteger() : 정수이면 true, 아니면 false 반환
- Number.isSafeInteger() : 안전한 정수인지 아닌지 검사
Number.prototype Method¶
- Number.prototype.toExponential() : 지수표기법으로 변환한 후 문자열 반환
- Number.prototype.toFixed() : 소수 부분 자릿수를 고정한 후, 문자열 반환
- Number.prototype.toPrecision() : 가수+소수의 자릿수를 고정한 후, 문자열 반환
- Number.prototype.toString() : 해당 진법으로 변환 후 문자열 반환
- Number.prototype.valueOf() : Number 인스턴스가 가지고 있는 값 반환
Math¶
- 수학 함수 기능을 제공하는 JS 표준 내장 객체
생성자가 존재하지 않아 인스턴스를 생성하지 않아도 바로 method나 property 사용 가능
Method¶
Method | 설명 | Example |
---|---|---|
Math.min(x, y, ...) | 인수 값 중 가장 작은 수 반환 | 0 |
Math.max(x, y, ...) | 인수 값 중 가장 큰 수 반환 | NaN |
Math.random() | 0<=난수<1 반환 | NaN |
Math.round(x) | x를 소수점 첫 번째 자리에서 반올림 | Infinity |
Math.floor(x) | x와 같거나 작은 수 중 가장 큰 정수 반환 | |
Math.ceil(x) | x와 같거나 큰 수 중 가장 큰 정수 반환 | |
Math.abs(x) | x의 절댓값 반환 | |
Math.cbrt(x) | x의 세제곱근 반환 | |
Math.sqrt(x) | x의 제곱근 반환 | |
Math.clz32(x) | x를 32비트 이진수로 변환한 후 0이 아닌 비트의 개수 반환 | |
Math.exp(x) | e^x 값 반환 (e : 오일러의 수) | |
Math.expm1(x) | 1 - e^x 값 반환 | |
Math.fround(x) | x와 가장 근접한 32비트 부동 소수점 수 반환 | |
Math.hypot(x, y, ...) | 인수 값들을 각각 제곱한 후 더한 총합의 제곱근 반환 | |
Math.imul(x, y) | 두 값의 32비트 곱셈의 결과를 반환 | |
Math.log(x) | x의 자연로그 값 반환 (ln x) | |
Math.log1p(x) | ln(1 + x)의 값을 반환 | |
Math.log10(x) | x의 10을 밑으로 가지는 로그 값 반환 | |
Math.log2(x) | x의 2를 밑으로 가지는 로그 값 반환 | |
Math.pow(x, y) | x^y 반환 | |
Math.sign(x) | x의 부호 값 반환 | |
Math.trunc(x) | x의 모든 소수 부분을 삭제하고 정수 부분만 반환 | |
Math.sin(x) Math.cos(x) Math.tan(x) Math.asin(x) Math.acos(x) Math.atan(x) Math.asinh(x) Math.acosh(x) Math.atanh(x) Math.atan2(x) |
x의 해당 삼각 함수값 반환 |
Property¶
Property | 설명 | 대략값 |
---|---|---|
Math.E | 오일러의 수라고 불리며, 자연로그의 밑 값 | 2.718 |
Math.LN2 | 2의 자연로그 값 | 0.693 |
Math.LN10 | 10의 자연로그 값 | 2.303 |
Math.LOG2E | 오일러 수(e)의 밑 값이 2인 로그 값 | 1.443 |
Math.LOG10E | 오일러 수(e)의 밑 값이 10인 로그 값 | 0.434 |
Math.PI | 원의 원주를 지름으로 나눈 비율(원주율) 값 | 3.14159 |
Math.SQRT1_2 | 2의 제곱근의 역수 값 | 0.707 |
Math.SQRT2 | 2의 제곱근 값 | 1.414 |
Date¶
- 연도(year) : 1900년(00) ~ 1999년(99)
- 월(month) : 1월(0) ~ 12월(11)
- 일(day) : 1일(1) ~ 31일(31)
- 시(hours) : 0시(0) ~ 23시(23)
- 분(minutes) : 0분(0) ~ 59분(59)
- 초(seconds) : 0초(0) ~ 59초(59)
날짜 양식 Date format¶
- ISO 날짜 양식
- ISO 8601 : 날짜와 시간을 나타내는 국제 표준 양식
- YYYY-MM-DDTHH:MM:SS (T는 UTC를 나타내는 문자, 시간까지 표현할 때에는 반드시 사용)
- YYYY-MM-DD
- Long 날짜 양식
- MMM DD YYYY
- DD MMM YYYY
- Short 날짜 양식
- MM/DD/YYYY
- YYYY/MM/DD
- Full 날짜 양식
getter Method¶
Method | 설명 |
---|---|
getDate() | 날짜 중 일자를 숫자로 반환 (1~31) |
getDay() | 날짜 중 요일을 숫자로 반환 (일요일:0 ~ 토요일: 6) |
getMonth() | 날짜 중 월을 숫자로 반환 (1월:0 ~ 12월: 11) |
getFullYear() | 날짜 중 연도를 4자리 숫자로 반환 (yyyy) |
getHours() | 시간 중 시를 숫자로 반환 (0~23) |
getMinutes() | 시간 중 분을 숫자로 반환 (0~59) |
getMilliseconds() | 시간 중 초를 밀리초 단위 숫자로 반환 (0~999) |
getTime() | 1970년 1월 1일부터 현재까지의 시간을 밀리초 단위 숫자로 반환 |
getTimezoneOffset() | UTC로부터 현재 시각까지의 시간차를 분 단위로 환산한 값을 숫자로 반환 |
toLocaleString() | 2023. 9. 19. 오전 10:35:58 형태로 반환 |
UTC getter Method¶
Method | 설명 |
---|---|
getUTCDate() | 협정세계시(UTC)로 현재 일자에 해당하는 숫자 반환 |
getUTCDay() | 협정세계시(UTC)로 현재 요일에 해당하는 숫자 반환 |
getUTCMonth() | 협정세계시(UTC)로 현재 월에 해당하는 숫자 반환 |
getUTCFullYear() | 협정세계시(UTC)로 현재 연도를 4자리 숫자로 반환 (yyyy) |
getUTCHours() | 협정세계시(UTC)로 현재 시각에 해당하는 숫자 반환 |
getUTCMinutes() | 협정세계시(UTC)로 현재 시각의 분에 해당하는 숫자 반환 |
getUTCSeconds() | 협정세계시(UTC)로 현재 시각의 초에 해당하는 숫자 반환 |
getUTCMilliseconds() | 협정세계시(UTC)로 현재 시각의 밀리초에 해당하는 숫자 반환 |
UTC setter Method¶
Method | 설명 |
---|---|
setDate() | 특정 일자 설정 (1~31) |
setMonth() | 특정 월 설정 (1월:0 ~ 12월: 11) |
setFullYear() | 특정 연도/월/일자 설정 (yyyy, mm, dd) |
setHours() | 특정 시간 설정 (0~23) |
setMinutes() | 특정 분 설정 (0~59) |
setMilliseconds() | 특정 밀리초 설정 (0~999) |
setSeconds() | 특정 초 설정 (0~59) |
setTime() | 1970년 1월 1일 0시 0분 0초부터 밀리초 단위로 표현되는 특정 시간 설정 |
UTC setter Method¶
Method | 설명 |
---|---|
setUTCDate() | 협정세계시(UTC)로 특정 일자 설정 (1~31) |
setUTCMonth() | 협정세계시(UTC)로 특정 월 설정 (1월:0 ~ 12월: 11) |
setUTCFullYear() | 협정세계시(UTC)로 특정 연도/월/일자 설정 (yyyy, mm, dd) |
setUTCHours() | 협정세계시(UTC)로 특정 시간 설정 (0~23) |
setUTCMinutes() | 협정세계시(UTC)로 특정 분 설정 (0~59) |
setUTCSeconds() | 협정세계시(UTC)로 특정 초 설정 (0~59) |
setUTCMilliseconds() | 협정세계시(UTC)로 특정 밀리초 설정 (0~999) |
String¶
- 문자열 값을 감싸는 wrapper 객체 생성
var strObj = new String("한글");
// 문자열 길이
strObj.length; // 2
// 긴 문자열 리터럴 나누어 표현하기
document.write("첫번째 문자열 \
두번째 문자열");
document.write("첫번째 문자열" +
"두번째 문자열");
Escape Sequence¶
- 16진수 이스케이프 시퀀스
\x
- 유니코드 이스케이프 시퀀스
\u
- 유니코드 코드 포인트 이스케이프
String.fromCodePoint(0x00A2)
Method¶
Method | 설명 |
---|---|
String.fromCharCode() | 유니코드에 해당하는 문자들의 문자열 반환 |
String.fromCodePoint() | 코드포인트에 해당하는 문자들의 문자열 반환 |
String.raw() | 템플릿 문자열의 원형 반환 |
String.prototype Method¶
- String은 Immutable하므로 모든 String method는 새로운 문자열을 생성하여 결과를 반환한다
Method | 설명 |
---|---|
indexOf() | 특정 문자나 문자열이 처음으로 등장하는 위치의 인덱스 반환 |
lastIndexOf() | 특정 문자나 문자열이 마지막으로 등장하는 위치의 인덱스 반환 |
charAt() | 해당 인덱스에 위치한 문자 반환 |
charCodeAt() | 해당 인덱스에 위치한 문자의 UTF-16 코드를 반환 (0~65535) |
charPointAt() | 해당 인덱스에 위치한 문자의 유니코드 코드 포인트 반환 |
slice(s, e) | start ~ end-1 까지 문자열 추출하여 새 문자열 반환 |
substring(s, e) | start ~ end-1 까지 문자열 추출하여 새 문자열 반환 |
substr(s, length) | 시작인덱스부터 length만큼 추출하여 새 문자열 반환 |
split() | 구분자를 기준으로 나눈 후, 나뉜 문자열을 하나의 배열로 반환 |
concat() | 전달받은 문자열을 결합한 새로운 문자열 반환 |
toUpperCase() | 모든 문자를 대문자로 변환한 새로운 문자열 반환 |
toLowerCase() | 모든 문자를 소문자로 변환한 새로운 문자열 반환 |
trim() | 양 끝의 공백과 모든 줄 바꿈 문자를 제거한 새로운 문자열 반환 |
replace() | 패턴에 맞는 문자열을 대체 문자열로 변환한 새 문자열 반환 |
includes() | 문자/문자열이 포함되어 있는지를 불리언 값으로 반환 |
startsWith() | 전달받은 문자/문자열로 시작되는지를 불리언 값으로 반환 |
endsWith() | 전달받은 문자/문자열로 끝나는지를 불리언 값으로 반환 |
toLocaleUpperCase() | 모든 언어의 문자를 대문자로 변환한 새로운 문자열 반환 |
toLocaleLowerCase() | 모든 언어의 문자를 소문자로 변환한 새로운 문자열 반환 |
localeCompare() | 문자열과 정렬 순서로 비교하여 그 결과를 정수 값으로 반환 |
normalize() | 문자열의 유니코드 표준화 양식 반환 |
repeat() | 문자열을 인수로 전달받은 횟수만큼 반복하여 결합한 새로운 문자열 반환 |
toString() | String 인스턴스의 값을 문자열로 반환 |
valueOf() | String 인스턴스의 값을 문자열로 반환 |
search() | 정규 표현식에 맞는 문자나 문자열이 처음으로 등장하는 위치의 인덱스 반환 |
match() | 정규 표현식에 맞는 문자열을 찾아서 하나의 배열로 반환 |
substring() vs slice()
- start > end인 경우
- substring() : start값과 end값을 바꾸어서 처리
- slice() : 비어있는 String
""
리턴
- start 또는 end 값이 음수인 경우 (-2, 6)
- substring() : 음수인 경우 0 변경해서 처리
- slice() : 문자열의 음수 인덱스에 위치한 문자의 index로 변경해서 처리
- start 또는 end 값이 음수이고, 음수의 절댓값이 전체 string 길이보다 클때
- slice() : 0으로 변경해서 처리
Array¶
- 배열, 정렬된 값들의 집합
Method¶
Method | 설명 |
---|---|
Array.isArray() | 전달된 값이 Array 객체인지 아닌지 검사 |
Array.from() | 배열과 비슷한 객체/반복할 수 있는 객체를 배열처럼 변환 Array 객체의 자식 클래스로 생성 |
Array.of() | 인수로 전달받은 값을 가지고 새로운 Array 인스턴스를 생성 |
- 배열과 비슷한 객체(array-like objects) : length 프로퍼티와 인덱스 된 요소를 가지고 있는 객체
- 반복할 수 있는 객체(iterable objects) : Map과 Set 객체 및 문자열과 같이 해당 요소를 개별적으로 선택할 수 있는 객체
Array.prototype Method¶
Method | 설명 |
---|---|
원본 배열 변경 | |
push() | 요소를 배열의 마지막에 추가하고, 배열의 총 길이 반환 Stack, Queue |
pop() | 배열의 가장 마지막 요소를 제거하고, 그 제거된 요소 반환 Stack |
shift() | 배열의 가장 첫 요소를 제거하고, 그 제거된 요소 반환 Queue |
unshift() | 하나 이상의 요소를 배열의 가장 앞에 추가하고, 배열의 총 길이 반환 |
reverse() | 배열 요소의 순서를 전부 반대로 교체 |
sort() | 해당 배열의 배열 요소들을 알파벳 순서에 따라 정렬 숫자는 따로 별도의 함수 필요 |
splice() | (새 요소가 삽입될 위치, 제거할 요소의 개수) 배열의 내용을 변경하고, 제거된 요소를 배열의 형태로 반환, 아무 요소도 제거되지 않았으면 빈 배열 반환 |
fill() | start부터 end-1까지의 모든 배열 요소를 특정 값으로 교체 |
copyWithin() | 배열에서 일련의 요소들을 복사하여, 명시된 위치의 요소들을 교체 |
원본 배열은 두고, 참조만 함 | |
join(구분자) | 배열의 모든 요소를 하나의 문자열로 반환 |
slice() | start ~ end-1 까지 모든 배열 요소 추출하여 새로운 배열 반환 |
concat() | 해당 배열의 뒤에 인수로 전달받은 배열을 합쳐서 만든 새로운 배열 반환 |
toString() | 해당 배열의 모든 요소를 하나의 문자열로 반환 |
toLocaleString() | 해당 배열의 모든 요소를 하나의 문자열로 반환 |
indexOf() | 전달받은 값과 동일한 배열 요소가 처음으로 등장하는 위치의 인덱스 반환 |
lastIndexOf() | 전달받은 값과 동일한 배열 요소가 마지막으로 등장하는 위치의 인덱스 반환 |
원본 배열은 두고, 반복 참조 | |
forEach(func) | 배열의 모든 요소에 대하여 반복적으로 명시된 콜백 함수를 실행 |
map(func) | 배열의 모든 요소에 대하여 반복적으로 명시된 콜백 함수를 실행한 후, 그 실행 결과를 새로운 배열로 반환 |
filter(func) | 해당 배열의 모든 요소에 대하여 반복적으로 명시된 콜백 함수를 실행한 후, 그 결과가 true인 요소들만을 새로운 배열에 담아 반환 |
every(func) | 해당 배열의 모든 요소에 대하여 반복적으로 명시된 콜백 함수를 실행한 후, 그 결과가 모두 true일 때에만 true 반환 |
some(func) | 해당 배열의 모든 요소에 대하여 반복적으로 명시된 콜백 함수를 실행한 후, 그 결과가 하나라도 true이면 true를 반환 |
reduce(func) | 해당 배열의 모든 요소에 대한 연산, 두 개의 인수를 전달받는 콜백 함수 실행 배열의 첫번째 요소부터 시작 |
reduceRight(func) | 해당 배열의 모든 요소에 대한 연산, 두 개의 인수를 전달받는 콜백 함수 실행 배열의 마지막 요소부터 시작 |
entries() | 배열 요소별로 키와 값의 한 쌍으로 이루어진 새로운 배열 반복자 객체(Array Iterator Object)를 배열 형태로 반환 |
keys() | 배열 요소별로 key만 포함하는 새로운 배열 반복자 객체를 배열 형태로 반환 |
values() | 배열 요소별로 value만 포함하는 새로운 배열 반복자 객체를 배열 형태로 반환 |
find() | 검사를 위해 전달받은 함수를 만족하는 배열 요소의 값을 반환함. 만족하는 값이 없으면 undefined를 반환 |
findIndex() | 검사를 위해 전달받은 함수를 만족하는 배열 요소의 인덱스를 반환함. 만족하는 값이 없으면 -1 반환 |
Quote