본문 바로가기

개발공부/JavaScript

JavaScript 객체와 내장객체

JavaScript에서는 '객체' 가 중요하다

객체는 {}를 이용하여 만든다.
key : value 형식으로 괄호안에 넣는다.
key-value 한 쌍을 객체의 속성(property)라고 한다.

프로퍼티 네임(key)는 문자열 타입

 

객체 생성 시 주의사항 
1. 첫번째 글자는 반드시 문자,밑줄(_), 달러기호($) 중 하나로 시작!
2. 띄어쓰기 금지!
3. 하이픈 금지!
4. 주의사항을 만족하지 않는 경우 반드시 따옴표로 감싸주어야 함

객체안에 객체를 넣을 수 있음

 


객체에 접근하는 방법

1. 점 표기법 objectName.propertyName
2. 대괄호 표기법 objectName['propertyName'] // 프로퍼티 이름을 유연하게 구성할 수 있다. 프로퍼티 이름에 다양한 방식으로 접근할 수 있다. 

 

객체에 프로퍼티 추가, 삭제

//객체 프로퍼티 추가 
objectName.newPropertyName = '값'
//객체 프로퍼티 삭제
delete objectName.propertyName


객체 안에 프로퍼티 있는지 확인하는 방법
1) objectName.propertyName !== undefined
2) 'propertyName' in objectName


객체와 메소드

객체 안에는 함수를 정의할 수도 있다.
그러는 이유는 함수의 의미를 객체에 집중하여 구체화할 수 있기 때문이다.

함수를 사용할 때에는 똑같이 객체이름.프로퍼티이름(파라미터)

 

객체의 반복문 : for..in


객체 안의 프로퍼티를 가지고 반복적인 동작을 할 때 사용

for(변수 in 객체){
//객체의 프로퍼티 갯수만큼 반복됨.
// 변수에는 프로퍼티 네임이 들어간다.
}

주의사항
객체 안에 정수형 프로퍼티가 있을 때,
객체는 정수형 프로퍼티 네임을 오름차순으로 먼저 정렬하고, 나머지 프로퍼티들은 추가한 순서대로 정렬하는 특징이 있다.

 for..in을 사용하여 객체에 접근할 때 추가한 순서가 아니라 정수형 프로퍼티가 먼저 출력되는 결과를 얻을 수 있다.

따라서 일반적으로 정수형 프로퍼티는 잘 사용하지 않음.

내장 객체 - Date 객체

 

let myDate = new Date(); // 객체를 생성한 순간의 시간이 저장됨

//괄호 안의 숫자는 밀리초 단위이다. 1970-01-01 00:00:00 기준으로 생성됨
new Date(1000);// 1970년 1월 1일 0시 0분 0초에서 1000ms가 지난 시간객체가 만들어짐

//만약 특정 시간대의 Date 객체를 생성하고 싶다면?
new Date('YYYY-MM-DD')
new Date('YYYY-MM-DDThh:mm:ss')
new Date(YYYY,MM,DD,hh,mm,ss,ms) // month는 1월이 0임
//연도와 월까지는 필수, 나머지는 생략 가능(default 1일 0시0분0초)



get~ 메소드를 통해 다양한 date정보 얻을 수 있다.
getTime 메소드 객체가 1970-01-01 00:00:00 UTC 부터 몇밀리초 지났는지 알려줌 - 타임스탬프

getDay() - 요일 return (일요일부터 0~6까지)

set~ 메소드를 통해 생성된 Date 객체의 정보를 수정할 수 있다.

간단하게 시간 정보를 표현하고 싶다면
console.log(myDate.toLocaleDateString()); // myDate가 가진 날짜에 대한 정보 (년. 월. 일)
console.log(myDate.toLocaleTimeString()); // myDate가 가진 시간에 대한 정보 (시:분:초)
console.log(myDate.toLocaleString()); // myDate가 가진 날짜와 시간에 대한 정보 (년. 월. 일 시:분:초)

각 메소드는 사용자의 브라우저에 설정된 국가의 표기에 맞춰 시간과 날짜를 보여준다.