Javascript

[Javascript] 객체

shb 2021. 12. 20. 12:28

변수의 범위(scope)
자바스크립트에서는 객체, 함수가 모두 변수에 담길 수 있다.
변수의 범위는 해당 변수에 접근할 수 있는 영역이다.

1. 지역변수
- 함수 내부에서 선언된 변수, { } 영역 내부에 선언된 변수
- 지역 변수는 변수가 선언된 영역 내에서 유효하고 그 영역을 벗어나게 되면 메모리에서 사라진다.

function f1(){
let data = 10;
}
console.log(data); //undefined

if(조건식){
let data2 = 20;
}
console.log(data2); //undefined

2. 전역변수
- 함수 외부에서 선언된 변수
- 전역 변수는 프로그램의 어느 영역에서나 접근할 수 있으며 웹 페이지가 닫혀야만 메모리에서 사라진다.

let data = 10;

function f1(){
console.log(data); //사용가능
}
console.log(data); //사용가능

 

 


화살표 함수
- function 키워드를 사용하여 함수를 만드는 것보다 간단히 표현하여 함수를 선언할 수 있다. 

- 화살표 함수는 항상 익명 함수

const 함수명 = (매개변수1, 매개변수2, ...) => {
실행문
...
};

 

1. 매개변수가 없는 함수
const 함수명 = () => console.log('Hello');

2. 매개변수가 있는 함수
const 함수명 = x => console.log(`매개변수 ${x}`);
const 함수명 = (x,y) => console.log(`매개변수 ${x},${y}`);



객체(Object)
- 하나하나의 구체적인 대상을 객체라고 부른다.
- 여러 변수와 메소드들을 통합적으로 가지고있다.
변수 : 객체가 가져야할 속성, 성질, 데이터 저장
메소드 : 객체가 해야할 행위, 기능 저장

 


프로퍼티(property)
- 객체 내의 변수 또는 함수
변수 -> 프로퍼티 , 함수 -> 프로퍼티 메소드

 


객체의 선언

1. 리터럴 표기법

const 객체명 = {} //빈 객체
const 객체명 = {
프로퍼티1:값1,
프로퍼티2:값2,
...
메소드명:function(){
수행할 문장
...
},
...
}


2. 생성자를 이용한 객체 생성
- new 연산자를 사용하여 객체를 생성하고 초기화 할 수 있다.
- 생성자는 메소드이며, 이 메소드는 새롭게 생성되는 객체를 초기화하는 역할을 한다.

function 생성자명(매개변수1, 매개변수2, ...){
this.프로퍼티1 = 매개변수값;
this.프로퍼티2 = 매개변수값;
...
}

const 객체명 = new 생성자명(값1, 값2, ...);

 



3. 클래스를 이용한 객체 생성
class 클래스명 {
constructor(매개변수1, 매개변수2,...){
this.프로퍼티1 = 매개변수값;
this.프로퍼티2 = 매개변수값;
...
}
메소드명(매개변수1, 매개변수2, ..){
수행할문장
...
}
...
}
const 클래스명 = class {
위와 동일
}