일급 객체 (First-class object)
컴퓨터 프로그래밍 언어 디자인에서 일급 객체란,
다른 객체들에게도 적용 가능한 연산을 모두 지원하는 객체
* 조건 : 변수나 데이터 구조 안에 담을 수 있는가? / 매개 변수로 전달할 수 있는가? / 리턴 값으로 사용 가능한가?
전역 객체(global object)
미리 정의된 객체로 전역 프로퍼티나 전역 함수를 담는 공간 역할
전역 객체 그 자체는 전역 범위에서 this.연산자로 접근 가능
자바스크립트에서 모든 객체는 전역 객체의 프로퍼티임
래퍼 객체(wrapper object)
자바스크립트는 생성한 문자가 객레가 아니어도 length 프로퍼티를 사용할 수 있도록 자동 형변환
형변환 과정에서 생성된 임시 객체는 해당 객체의 메소드를 상속받아서 프로퍼티 참조에 사용
원시 타입의 프로퍼티에 접근하려 할 때, 생성되는 임시 객체가 wrapper object
var str = "문자열"; // 문자열 생성
var len = str.length; // 문자열 프로퍼티인 length 사용
객체 프로퍼티(property)
모든 자바스크립트 객체는 object 객체와 object.prototype객체의 모든 프로퍼티를 상속
현존하는 프로토타입에 새로운 프로퍼티 or 메소드 쉽게 추가 가능
1. hasOwnProperty()
2. propertyIsEnumerable()
3. isPrototypeOf()
4. isExtensible()
5. toString()
6. valueOf()
내장객체 (Built-in Object)
브라우저의 자바스크립트 엔진에 내장된 객체
다양한 종류의 내장객체들이 존재
* 내장객체 종류
1) Object 객체
자바스크립트의 최상위 객체
2) Number 객체
자바스크립트에서는 정수와 실수를 따로 구분하지 않고 모든 수를 실수 하나로만 표현
즉, 64비트 부동 소수점 수로 저장됨 (정수부 15자리, 소수부 17자리까지 유효)
* Infinity : number 타입 , 무한대
* NaN : number 타입, 숫자가 아님
* null : object 타입, 값이 정해지지 않은 것을 의미하는 값
* undefined : null과 달리 하나의 타입, 타입이 정해지지 않은 것을 의미하는 값
*** 동등 연산(==)은 값이 같으면 true 반환, 일치 연산(===)은 타입이 다르면 false
3) String 객체
* 이스케이프 시퀀스
* 긴 문자열을 리터럴 나눠 표현 ( \ or + )
* String 객체 > 문자열을 감싸는 String 객체를 생성할 때 wrapper객체라고 부름
* String 메소드
String 객체에 정의된 문자열 관련 작업 시 사용
- String.fromCharCode() // 쉼표로 구분되는 일련의 유니코드에 해당하는 문자들로 구성된 문자열
- String.fromCodePoint() // 쉼표로 구분되는 코드포인트에 해당하는 문자열 반환
- String.raw() 템플릿 문자열의 원형을 반환
* String.prototype 메소드
1) 문자열에서 위치 찾기 indexOf(), lastIndexOf()
2) 문자열에서 지정된 위치에 있는 문자 반환 charAt(), charCodeAt(), charPointAt()
3) 문자열 추출 slice(), substring(), substr()
4) 문자열 분리 split()
5) 문자열 결합 concat()
6) 대소문자 변환 toUpperCase(), toLowerCase()
7) 문자열 주위 공백 제거 trim()
4) Array 객체
* array 메소드
1. Array.isArray() : 전달박은 값이 array객체인지 아닌지 검사함
2. Array.from() : 배열과 비슷한 객체와 반복가능한 객체들을 배열처럼 변환
3. Array.of() : 인수로 전달받은 타입의 값을 가지로 새로운 인스턴스 형성
5) Date 객체
연, 월, 일 / 시,분,초 / 밀리초 의 정보 제공
* 객체 초기화
var date = new Date();
new Date("날짜를 나타내는 문자열")
new Date(밀리초)
new Date(년, 월, 일, 시, 분, 초, 밀리초)
* 표현범위
1. 연도(year) : 1900년(00) ~ 1999년(99)
2. 월(month) : 1월(0) ~ 12월(11)
3. 일(day) : 1일(1) ~ 31일(31)
4. 시(hours) : 0시(0) ~ 23시(23)
5. 분(minutes) : 0분(0) ~ 59분(59)
6. 초(seconds) : 0초(0) ~ 59초(59)
* Date 메소드
date.now()
getFullYear() // 현 연도를 4비트 숫자로 반환
getDate() // 현 날짜에 해당하는 숫자르 반환
getDay() // 현재 요일 숫자 반환 (0(일요일) ~ 6(토요일))
getTime() // 1970년 1월 1일 0시 0분 0초부터 현재까지 시간을 밀리초 단위로 환산 (하루 = 86400000ms)
6) Math 객체
Math.min()
Math.max()
Math.random()
참고자료
1) 객체 : http://www.tcpschool.com/javascript/js_standard_math
'JAVASCRIPT' 카테고리의 다른 글
[자바스크립트] 함수 호출 (1) | 2022.09.19 |
---|---|
[자바스크립트] 중첩함수 (0) | 2022.09.17 |
[자바스크립트] 콜백함수 / 비동기 처리 / await (0) | 2022.09.16 |
[자바스크립트] 재귀함수 (0) | 2022.09.16 |
[자바스크립트] 함수 선언 (0) | 2022.09.15 |