w3schools.JS Objects Definitions

ansunny1170·2022년 2월 9일
0

w3schools.JS Object

목록 보기
1/4

# JS Objects


JS에서 객체는 왕이다. 만약 객체(object)를 이해한다면 이는 곧 JS를 이해한 것이다.

JS에서 대부분의 모든 것은 object이다.

  • Booleans는 객체가 될 수 있다.(new키워드로 생성 시)
  • Nubers는 객체가 될 수 있다.(new키워드로 생성 시)
  • Strings는 객체가 될 수 있다.(new키워드로 생성 시)
  • Dates는 객체다.
  • Maths는 객체다.
  • 정규표현식(Regular expressions)은 객체다.
  • Arrays는 객체다.
  • Functions는 객체다.
  • Objects는 객체다.

모든 JS 값과 요소들 역시 객체이다.

## JavaScript Primitives

--
원시 값(primitive value)은 속성이나 메서드가 없는 값이다.
원시 자료형(primitive data type은 원시 값이 없는 데이터다.
JS는 5가지 유형의 기본 데이터 유형을 정의한다.

  • string
  • number
  • boolean
  • null
  • undefined

원시 값들은 변형이 불가하다(하드코딩 되어 변경될 수 없다).

만약 x=3.14 라면, 우리는 x의 값을 변경할 수 있다. 그러나 3.14의 값을 변경할 수는 없다.

ValueTypeComment
"Hello"string"Hello" is always "Hello"
3.14number3.14 is always 3.14
truebooleantrue is always true
falsebooleanfalse is always false
nullnull (object)null is always null
undefinedundefinedundefined is always undefined

## Objects are Variables

JS 변수는 단일 값을 포함 할수 있고, 여러 값을 포함 할 수 도 있다.
객체 또한 동일하다.
Object는 name:value 가 한 쌍이다.

즉 JS의 Object는 명명된 값의 모음이다.
아래 형식이 일반적이다.

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

## Object Properties


JS 객체에서 명명된 값을 속성이라고 한다.

PropertyValue
firstNameJohn
lastNameDoe
age50
eyeColorblue

이름 값 한 쌍으로 작성된 객체는 다음과 비슷하다.

  • PHP의 연관 배열
  • 파이썬의 사전
  • C의 해시 테이블
  • Java의 해시 맵
  • Ruby 및 Perl의 해시

## Object Methods


메서드는 개체에 대해 수행할 수 있는 작업(actions)이다.
객체 속성은 원시 값, 기타 객체 및 함수가 될 수 있다.
객체 메서드는 함수 정의를 포함하는 객체 속성이다.

PropertyValue
firstNameJohn
lastNameDoe
age50
eyeColorblue
fullNamefunction() {return this.firstName + " " + this.lastName;}

## Creating a JavaScript Object


JS를 사용하여 고유한 객체를 정의하고 만들 수 있다.

새 개체를 만드는 방법에는 여러 가지가 있다.

  • 개체 리터럴을 사용하여 단일 개체를 만듬
  • 키워드 new를 사용하여 단일 개체를 만듬
  • 개체 생성자를 정의한 다음 생성된 형식의 개체를 만듬
  • Object.create()를 사용

## Using an Object Literal


이것은 JS 객체를 생성하는 가장 쉬운 방법이다.
객체 리터럴을 사용하면 하나의 명령문에서 객체를 정의하고 생성할 수 있다.
객체 리터럴은 중괄호 {} 안에 있는 이름:값 쌍(예: age:50)의 목록이다.

다음 예시에서는 4개의 속성이 있는 새 JS 객체를 만든다.

const person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
// 공백이나 줄 바꿈은 중요하지 않다. 
// 객체 정의는 여러 줄 사용을 허용한다.
const person = {
  firstName: "John",
  lastName: "Doe",
  age: 50,
  eyeColor: "blue"
};

다음 예시는 빈 객체를 만든 다음, 4개 속성을 추가하였다.

const person = {};
person.firstName = "John";
person.lastName = "Doe";
person.age = 50;
person.eyeColor = "blue";

## Using the JavaScript Keyword new


다음 예시는 new Object() 키워드를 사용하여 새로운 JS Object를 생성하고, 4개의 속성을 추가한다.

const person = new Object();
person.firstName = "John";
person.lastName = "Doe";
person.age = 50;
person.eyeColor = "blue";

상위 3가지 예시는 모두 동일하다. 그러나 구지 new Object() 키워드를 사용할 필요가 없다. 가독성, 단순성 및 실행 속도를 위해 객체 리터럴 방법을 사용하자.

## JavaScript Objects are Mutable


객체는 변경 가능하다. 값으로 정의되는 것이 아닌 주소 참조로 처리되기 때문이다.

person이 객체인 경우, 다음 명령문은 person의 복사본을 생성하지 않는다.

const x = person; // Will not create a copy of person.

객체 x는 person복사본이 아닌 person이다. xperson 모두 같은 객체이다.

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

const x = person;
x.age = 10; // Will change both x.age and person.age

`x.age`와 `person.age` 모두 변경된다.
profile
공정 설비 개발/연구원에서 웹 서비스 개발자로 경력 이전하였습니다. Node.js 백엔드 기반 풀스택 개발자를 목표로 하고 있습니다.

0개의 댓글