[Javascript] 객체
변수의 범위(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 {
위와 동일
}