1. 객체(Object)
1) JSON
2) 객체 프로퍼티 접근/변경
3) 메서드를 갖는 객체
4) 생성자 함수
만약에 똑같은 형태의 객체를 여러개 만들어야한다면, 객체의 메서드를 일일이 다시 작성하는 번거로움이 있을 수 있다.
그래서 JS에서는 똑같은 프로퍼티와 메서드들을 갖는 객체를 생성하는 방법을 여러가지 제공하는데, 그 중 하나가 생성자 함수이다.
* 생성자 함수에서 필드를 선언할 때는 반드시 앞에 this를 붙여야 함.
* 메서드를 선언할 때도 반드시 앞에 this를 붙어야 함.
(1) 파라미터가 있는 생성자 함수를 아규먼트 없이 호출할 경우 파라미터값에는 undefined가 할당된다.
(2) default parameter를 활용하면 파라미터에 undefined가 들어가는 것을 방지할 수 있다.
5) 객체에서 for-in 구문 사용
6) 객체의 destructuring assignment(구조분해 할당)
7) 클래스 선언과 객체 생성
2. 객체의 구조분해 할당 응용
(1) 배열과 다르게 중괄호를 사용한다!
(2) 배열의 아이템들보다 구조분해 할당 변수의 개수가 적은 경우 : 순서대로 아이템들이 할당됨
(3) 배열의 아이템들보다 구조분해 할당 변수의 개수가 더 많은 경우 : 순서대로 아이템들이 할당되고 할당되지 않은 변수에는 undefined가 저장됨
(4) rest 연산자(...) 를 객체의 구조분해 할당에서도 사용할 수 있다.
* rest 연산 결과는 새로운 객체로 저장된다.
(5) 구조분해 할당을 이용하면 지역변수 선언하는 코드를 줄일 수 있고, 코드를 좀 더 간결하게 만들 수 있다.
※ 자바에는 오버로딩이라는 개념이 있지만 자바스크립트에는 없다. 자바스크립트에서는 같은 이름으로 함수를 여러개 만들면 제일 마지막에 작성한 함수가 호출된다.
※ 파라미터보다 더 많은 아규먼트를 입력하면 파라미터 값으로 사용되지 않은 아규먼트들은 arguments 프로퍼티에 저장된다.
※ 앰퍼샌드는 HTML에서 특정 용도로도 사용하기 때문에 화면 출력용으로 &을 입력할 경우 전통적으로 & 로 입력함.
요즘 브라우저는 알아서 잘 해석하긴 하지만 Eclipse 프로그램에서는 에러가 표시됨.
* (참고) < → ' < ', > → ' > '
-----------------------------------------
자바스크립트가 자바와 다른 점
함수가 객체여서 함수마다 property 를 가질 수 있따. 함수를 변수에 할당할 수 있다.
함수 이름만 쓰면 함수 객체, 함수 이름 다음에 괄호를 쓰면 함수의 결과를 저장하는 것임에 주의!
변수에 함수를 저장할 수 있기 때문에 아규먼트로 함수를 주는 것도 가능하다.
함수는 함수를 리턴할 수도 있다. 리턴값이 함수가 될 수 있음.
가장 큰 특징 중 하나는 함수 내부에서 다른 함수를 선언할 수 있다는 것(내부 함수).
자바에서는 메서드 안에 메서드를 만들 수 없음.
'JavaScript' 카테고리의 다른 글
241212 JavaScript 05 - HTML 요소 찾는 법, 이벤트 종류, 이벤트 리스너 (0) | 2024.12.12 |
---|---|
241210 JavaScript 03 - 분해 할당, 함수 기초, 배열 함수 (0) | 2024.12.10 |
241209 JavaScript 02 - if 조건문, Switch-case, for 반복문, while 반복문, 배열 (1) | 2024.12.09 |
241206 JavaScript 01 - HTML 파일에 JS 작성/로드하기, const 키워드, let 키워드 (0) | 2024.12.06 |