[ 목차 ]
1. 객체
2. 프로퍼티
3. 메소드
4. 객체 생성 방법
5. 프로퍼티 키
6. 프로퍼티 값 읽기
7. 프로퍼티 값 갱신
8. 프로퍼티 동적 생성
9. 프로퍼티의 삭제
10. for-in 문
11. Pass-by-reference
12. Pass-by-value
1. 객체
1) 자바스크립트는 객체기반의 스크립트 언어이며 자바스크립트를 이루고 있는 거의 모든 것이 객체
2) 원시 타입을 제외한 나머지 값들은 모두 객체
3) 자바스크립트의 객체는 키와 값으로 구성된 프로퍼티들의 집합
4) 프로퍼티 값으로 함수를 사용할 수도 있으며 프로퍼티 값이 함수일 경우 일반 함수와 구분하기 위해 메소드라 지칭
5) 객체는 데이터를 의미하는 포로퍼티와 데이터를 참조, 조작할 수 있는 동작을 의미하는 메소드로 구성된 집합
6) 자바스크립트의 객체는 객체지향의 상속을 구현하기 위해 프로토타입이라 불리는 객체의 프로퍼티와 메소드를 상속 받을 수 있음
2. 프로퍼티
1) 프로퍼티 키와 프로퍼타 값으로 구성
2) 프로퍼티 키 : 프로퍼티를 식별하기 위한 식별자로 빈 문자열을 포함하는 모든 문자열 또는 symbol 값
3) 프로퍼티 값 : 모든 값
4) 프로퍼티 키에 문자열이나 symbol값 이외의 값을 지정하면 암묵적으로 문자열로 타입이 변환
5) 이미 존재하는 프로퍼티 키를 중복 선언 시 나중에 선언한 프로퍼티가 덮어씀
6) 배열과 달리 객체는 프로퍼티를 열거할 때 순서를 보장하지 않음
3. 메소드
1) 프로퍼티 값이 함수일 경우 일반 함수와 구분하기 위해 메소드라 지칭
2) 객체에 제한되어 있는 함수를 의미
4. 객체 생성 방법
1) 자바와 같은 언어와 다리 클래스라는 개념이 없고 별도의 객체 생성 방법이 존재
2) 객체 리터럴
1] 중괄호 {}를 사용하여 생성
2] 중괄호 내에 1개 이상의 프로퍼티를 기술하면 해당 프로퍼티가 추가된 객체가 생성 가능하며 비울경우 빈 객체 생성
3) object 생성자 함수
1] new 연산자와 Object 생성자 함수를 호출해 빈 객체 생성 가능
2] 이후 프로퍼티 또는 메소드를 추가하여 객체를 완성
4) 생성자 함수
1] 객체를 생성하기 위한 템플릿처럼 사용하여 프로퍼티가 동일한 객체 여러 개를 간편하게 생성 가능
2] 생성자 함수 이름은 일반적으로 대문자로 시작
2] this는 생성자 함수가 생성할 인스턴스를 지칭
3] this에 연결된 프로퍼티와 메소드는 외부에서 참조 가능
4] 생성자 함수 내에서 선언된 일반 변수는 외부에서 참조 불가능
5. 프로퍼티 키
1) 일반적으로 문자열을 지정
2) 프로퍼티 키는 문자열이므로 다옴표를 사용
3) 프로퍼티 값은 모든 갑과 표현식이 올 수 있기에 함수인 경우 이를 메소드라 지칭
4) 표현식을 프로퍼티 키로 사용하려면 키로 사용할 표현식을 대괄호로 묶어야 함
5) 예약어를 프로퍼티 키로 사용해도 에러가 발생하지는 않지만 사용하지 않는 것을 권장
6. 프로퍼티 값 읽기
1) 객체의 프로퍼티 값에 접근하는 방법은 마침표 표기법과 대괄호 표기법이 존재
2) 프로퍼티 키가 유효한 자바스크립트 이름이고 예약어가 아닌 경우 마침표 표기법, 대괄호 표기법 모두 가능
3) 프로퍼티 키가 유효안 자바스크립트 이름이 아니거나 예약어인 경우 대괄호 표기법을 사용해야 하며, 반드시 문자열
7. 프로퍼티 값 갱신
1) 객체가 소유하고 있는 프로퍼티에 새로운 값을 할당하면 프로퍼티 값은 갱신
8. 프로퍼티 동적 생성
1) 객체가 소유하고 있지 않은 프로퍼티 키에 값을 할당하면 주어진 키와 값으로 프로퍼티를 생성하여 객체에 추가
9. 프로퍼티의 삭제
1) delete 연산자를 사용하여 삭제 가능하며, 피연산자는 프로퍼티 키
10. for-in 문
1) 객체(배열 포함)에 포함된 모든 프로퍼티에 대한 루프를 수행
2) 객체의 문자열 키를 순회하기 위한 문법으로 배열에는 잘 사용하지 않음
3) 키값이 아닌 배열만 순회할 때 for-of문을 사용
11. Pass-by-reference
1) 개체의 모든 연산이 실제값이 아닌 참조값으로 처리됨을 의미
2) 프로퍼티를 변경, 추가, 삭제가 가능하므로 변경 가능한 값
2) foo, bar 모두 동일한 객체를 참조하고 있기 때문에 val 값이 변경되면 두 변수 모두 변경된 val 값을 참조
3) foo와 bar는 내용은 같지만 별개의 객체를 생성하여 참조값을 할당했기 때문에 어드레스는 동일하지 않음
12. Pass-by-value
1) 참조타입과 달리 원시타입은 값으로 전달, 즉 복사되어 옮겨지며 이를 Pass-by-value라 지칭
2) 한번 정해지면 변경될 수 없으며 값은 메모리의 스택 영역에 저장되어 고정된 메모리 영역을 점유
'학원 > JavaScript' 카테고리의 다른 글
10장. 함수 - 추가필요 (0) | 2020.04.09 |
---|---|
9장. 객체와 변경불가성 - 추가필요 (0) | 2020.04.08 |
7장. 타입 변환과 단축 평가 (0) | 2020.04.08 |
6장. 제어문 - 추가필요 (0) | 2020.04.08 |
5장. 연산자 (0) | 2020.04.08 |