programming/beginner

[js] object

솧이 2022. 9. 11. 20:15

▶ 객체(object)

javascript는 객체 기반의 스크립트 언어이며 javascript를 이루고 있는 거의 모든 것은 객체이다.

객체란 여러 속성을 하나의 변수에 저장할 수 있도록 해주는 데이터 타입으로 key, value pair를 저장할 수 있는 구조이다

 

▷ 객체 구문

var user = new user(); // "object constructor" syntax
var user = {}; // "object literal" syntax

var user = {
  name: "Surim Son",
  age: 22
};

 

  객체의 특징

객체는 변수이다. 그러나 객체에는 많은 값이 포함될 수 있다.

객체는 중괄호 표기를 이용하여 만들 수 있다

객체는 각각의 key/value에 대한 정보를 나열할 수 있다

key는 문자열 또는 기호여야 한다

value는 모든 유형이 될 수 있다

객체는 한 쌍의 key/value 뒤에 쉼표를 이용하여 그 뒤에 오는 key/value와 구분해주어야 한다

객체에서 명명된 값을 properties라고 한다

변수는 예약어의 이름을 가질 수 없지만 객체는 어떠한 이름이어도 상관없다

객체 변수를 복사하면 참조가 복사되고 객체가 복제되지 않는다 - 객체는 참조에 의한 전달 (pass-by-reference) 방식을 전달된다

let user = {name : "john"};
let admin = user; // copy the reference

 

  객체의 종류

배열

함수

객체

날짜

수학

정규표현식

boolean (new로 정의된 경우)

숫자 (new로 정의된 경우)

문자열 (new로 정의된 경우) 

 

Script에서 원시값을 제외한 모든 JavaScript값은 객체이다.

● 원시값 : 어떤 특성 또는 방법이 없는 값
● 기본 데이터 형식 : 원시 값을 갖는 데이터

 

  객체가 아닌 기본 데이터 유형

string

number

boolean

null

undefined

 

 

 

프로퍼티 (property)

property는 객체의 속성을 나타내는 접근 가능한 이름과 활용 가능한 값을 가지는 특별한 형태이다

특정 객체가 가지고 있는 정보를 품고 있어 그 객체가 가진 정보에 직접적으로 접근할 수 있게 해준다

 

● key : 빈 문자열을 포함한 모든 문자열 또는 symbol 값

● value : 모든 값

var obj = {};
obj.a = 1; // . 연산자를 이용해 a라는 이름의 property를 생성해 1이라는 값을 할당한다

 

* property 추가 시 주의할 점!

1. property 값을 할당하지 않는 경우

javascript에서 사용하는 변수는 값을 할당하지 않고 선언만 할 경우에 자동적으로 undefined 가 할당된다

하지만 객체의 정보를 담고 있어야 할 요소가 아무것도 담고 있지 않으면 객체로서 필요없기에 property를 추가하면서 값을 할당하지 않으면 syntax error가 뜬다

 

* property 삭제

반드시 delete라는 keyword를 사용해 삭제해야 한다

 

 

 

객체 생성 방법

객체 리터럴 사용해 단일 객체를 정의하고 만든다

var person = {
	firstName:"John",
	lastName:"Doe",
	age:50,
	eyeColor:"blue"
};

 

 객체 접근 방법

console.log(person['firstname']);
console.log(person.lastname);

 

 객체 추가 방법

var person = {
	name : 'hong'
};

person.age = 23;
person['area'] = 'seoul';

 

 

참고 : https://velog.io/@surim014/%EC%9B%B9%EC%9D%84-%EC%9B%80%EC%A7%81%EC%9D%B4%EB%8A%94-%EA%B7%BC%EC%9C%A1-JavaScript%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80-part-7-Object-35k01xmdfp

'programming > beginner' 카테고리의 다른 글

[js] template literal  (0) 2022.09.11
[js] null, undefined  (0) 2022.09.11
[js] datatype (literal, string, number, array, object, null, undefined)  (0) 2022.09.11
[js] operator  (0) 2022.09.11
[js] variable  (0) 2022.09.09