본문 바로가기

Web/JavaScript

[기본] 자료형 - 객체

728x90

 

(원시형의 예시)

// Infiity = 무한대 

let x = Infinity; // 무한대
let y = (1/0); // 무한대

alert("abc"/2); //NaN
alert("def"/2+2); //NaN


//bigint 표현 방법
// 끝에 'n'을 붙인다.
const bigInt = 1234567890123456789012345678901234567890n;

 

 

 

 

객체object 

객체형은 원시형과 달리 다양한 데이터를 담을 수 있다.

 

let user = new Object(); // '객체 생성자' 문법

let user = {}; // '객체 리터럴' 문법

 

let user = {     // 객체
  name: "John",  // 키: "name",  값: "John"
  age: 30,        // 키: "age", 값: 30
  "likes birds": true  // 복수의 단어는 따옴표로 묶어서 표기
};


let user = {};

// set
user["likes birds"] = true;

// get
alert(user["likes birds"]); // true

// delete
delete user["likes birds"];

 

 

 

 

단축 프로퍼티

function makeUser(name, age) {
  return {
    name: name,
    age: age,
    // ...등등
  };
}

let user = makeUser("John", 30);
alert(user.name); // John

 

 

 

"in" 연산자로 존재 여부 확인

let user = {};

alert( user.noSuchProperty === undefined ); // true는 '프로퍼티가 존재하지 않음'을 의미




let user = { name: "John", age: 30 };

alert( "age" in user ); // user.age가 존재하므로 true가 출력
alert( "blabla" in user ); // user.blabla는 존재하지 않기 때문에 false가 출력

 

대부분의 경우, 일치 연산자를 사용해서 프로퍼티 존재 여부를 알아내는 방법("=== undefined")은 꽤 잘 동작하긴 한다.

그거나 가끔 이 방법이 실패할 때도 있다.

이럴 때 in을 사용하면 프로퍼티 존재 여부를 확실히 판별해준다.

 

let obj = {
  test: undefined
};

alert( obj.test ); // 값이 `undefined`이므로, 얼럿 창엔 undefined가 출력. 그러나 프로퍼티 test는 존재하게 됨.

alert( "test" in obj ); // `in`을 사용하면 프로퍼티 유무를 제대로 확인할 수 있다(true가 출력됨).

 

 

 

"for in"

객체 정렬 방식으로 key 가 정수일 경우에는 asc 순으로 정렬되어 출력된다. *****

키가 정수가 아니라면 작성 순으로 나열된다

 

 

객체는 몇 가지 특수한 기능을 가진 연관 배열(associative array)이다.

객체는 프로퍼티(키-값 쌍)를 저장한다.

  • 프로퍼티 키는 문자열이나 심볼이어야 한다. 보통은 문자열이다.
  • 값은 어떤 자료형도 가능하다.

아래와 같은 방법을 사용하면 프로퍼티에 접근할 수 있다.

  • 점 표기법: obj.property
  • 대괄호 표기법 obj["property"]. 대괄호 표기법을 사용하면 obj[varWithKey]같이 변수에서 키를 가져올 수 있다.

객체엔 다음과 같은 추가 연산자를 사용할 수 있다.

  • 프로퍼티를 삭제하고 싶을 때: delete obj.prop
  • 해당 key를 가진 프로퍼티가 객체 내에 있는지 확인하고자 할 때: "key" in obj
  • 프로퍼티를 나열할 때: for (let key in obj)

지금까진 '순수 객체(plain object)'라 불리는 일반 객체에 대해 학습했다.

자바스크립트에는 일반 객체 이외에도 다양한 종류의 객체가 있다.

  • Array – 정렬된 데이터 컬렉션을 저장할 때 쓰임
  • Date – 날짜와 시간 정보를 저장할 때 쓰임
  • Error – 에러 정보를 저장할 때 쓰임
  • 기타 등등

 

 

728x90