- 객체란?
자바스크립트는 객체 기반의 프로그래밍 언어이며, 자바스크립트를 구성하는 거의 모든 것이 객체다.
원시값을 제외한 나머지 값(함수, 배열, 정규 표현식 등) 모두 객체이다.
원시값은 단 하나의 값만 나타낸다.
객체 타입은 다양한 타입의 값을 하나의 단위로 구성한 복합적인 자료구조이다.
▷ 원시 타입의 값, 즉 원시 값은 변경 불가능한 값 immutable value
▷ 객체 타입의 값, 즉 객체는 변경가능한 값 mutable value
객체는 0개 이상의 프로퍼티로 구성된 집합이며, 프로퍼티는 키와 값으로 구성된다.
var person = { name: "Lee", //프로퍼티 age: 20, //프로퍼티 };
- 메서드
모든 값은 프로퍼티값이 될 수 있다. 자바스크립트 함수는 일급객체이므로 값으로 취급한다.
함수도 프로퍼티값으로 사용할 수 있고 프로퍼티값이 함수일 경우에 일반함수와 구분하기 위해 메서드라 부른다.
var counter = { num: 0, //프로퍼티 increase: function () { //메서드 this.num++; }, };
var circle = { radius: 5, //프로퍼티 //원의 지름 getDiameterL: function () { //메서드 return 2 * this.radius; //this는 circle 를 가리킨다. }, }; console.log(circle.getDiameterL()); //10
- 객체 리터럴
중괄호{...} 내에 0개 이상의 프로퍼티를 정의한다. 변수에 할당되는 시점에 자바스크립트 엔진은 객체 리터럴을 해석해 객체를 생성한다.
var person = { name: "Lee", sayHello: function () { console.log("hello! My name is ${this.name}"); }, }; console.log(typeof person); //object console.log(person); ///{name: "Lee", sayHello: f} var empty = {}; //빈객체 console.log(typeof empty); //object
- 프로퍼티
객체는 프로퍼티의 집합이며, 프로퍼티는 키와 값으로 구성된다.
▷식별자 네이밍 규칙을 준수하는 프로퍼티 키
▷식별자 네이밍 규칙을 준수하지 않은 프로퍼티 키
var person = { //프로퍼티 키는 name, 프로퍼티 값은 'Lee' name: "Lee", //프로퍼티 키는 age, 프로퍼티 값은 20 age: 20, }; var person = { firstName: "Ung-mo", //식별자 네이밍 규칙을 준수하는 프로퍼티 키 "last-name": "Lee", //식별자 네이밍 규칙을 준수하지 않은 프로퍼티 키 }; console.log(person); //{firstName: "Ung-mo", last-name:"Lee"} var person = { firstName: "Umg-mo", //last-name: 'Lee' 에러 발생 }; var obj = {}; //빈객체 var key = "hello"; obj[key] = "world"; //{hello: "world"} console.log(obj); var foo = { name: "Lee", name: "son", }; console.log("name"); //{name : "son"}
- 프로퍼티 접근
접근 방법: 마침표 프로퍼티 접근연산자(..)를 사용하는 마침표 표기법:대괄호 프로퍼티 접근연산자([...])를 사용하는 대괄호 표기법var person = { name: "Lee", }; console.log(person.name); //Lee console.log(["name"]); //Lee var person = { name = 'Lee' };
- 프로퍼티 값 갱신
이미 존재하는 프로퍼티에 값을 할당하면 프로퍼티 값이 갱신된다.
var person ={ 'last-name' : 'Lee', 1:10 }; //애러 person.'last-name'; person['last-name'];
- 프로퍼티 동적생성
var person = { name: 'Lee' }; person.age =20; console.log(person); //{name:"Lee",age:20}
- 프로퍼티 삭제
var person= { name= 'Lee' }; person.age = 20; delete person.age;
- 프로퍼티 축약 표현
프로퍼티 값으로 변수를 사용하는 경우 변수 이름과 프로퍼티 키가 동일한 이름일 때 프로퍼티 키를 생략할 수 있다. 이떄 프로퍼티 키는 변수 이름으로 자동 생성된다 //프로퍼티 축약 표현 var x = 1, y= 2; var obj = { x: x, y: y }; console.log(obj); //{x:1, y:2} let x = 1, y = 2; const obj = {x,y}; console.log(obj); //{x:1, y:2}
- 프로퍼티 접근
'자바스크립트' 카테고리의 다른 글
자바스크립트 - 함수 (0) | 2021.12.17 |
---|---|
원시 값과 객체의 비교 (0) | 2021.12.16 |
타입 변환과 단축 평가 (0) | 2021.12.11 |
데이터타입의 필요성 (0) | 2021.12.10 |
데이터 타입 (0) | 2021.12.10 |