실습 방법: 구글 브라우저 들어가서 오른쪽 마우스, 검색(F12), 콘솔들어가기
enter : 실행
SHIFT + 엔터 : 줄 개행(다음줄로 이동)
위쪽 방향키 : 입력했던 코드 보기
ctrl +R, F5 : 코드 다 없어짐
객체
(object)
사물, 대상
- 객체 리터럴
- 객체는 이름과 값을 한쌍을 묶은 데이터를 여러개 모은 것
- 객체는 데이터 여러개를 하나로 모은 복합 데이터로 연관배열 또는 사전(Diction) 이라고 부릅니다.
{
이름:값,
이름:값,
이름:값,
…
}
이름 → 속성(property)
→ 변수와 동일
값 : 숫자, 문자, 논리값, undefined, null, 객체 → 전부 값으로 사용 가능
변수명.속성명;
변수명[’속성명’];
- 객체 리터럴로 객체 생성하기CRUDR - READ : 조회D - DELETE : 삭제
- 수정 : 있는 속성명에 값을 대입하면 변경이 된다.
- U - UPDATE : 수정
- C - CREATE : 생성
- 데이터
- 프로퍼티 추가와 삭제삭제 : delete 변수명.속성명;
- 추가 : 없는 속성명에 값을 대입하면 새로운 속성이 추가
- in 연산자로 프로퍼티가 있는지 확인하기
in : 객체의 속성명의 존재 유무 체크
for … in 구문 : 객체의 속성명을 가지고 반복
- 메서드
- 객체 안에 정의된 함수
- 객체는 참조 타입데이터 영역힙 영역 - 객체 전용 메모리
- 스택 영역 - 함수 전용 메모리
- 메모리
함수
- 일련의 처리를 하나로 모아 언제든 호출할 수 있도록 만들어 놓은것
- 기능
- 메서드라고도 한다.
- 자바스크립스의 함수는 함수가 아니다. 객체이다!!!!
- 함수 선언문으로 함수 정의하기// 실행 코드 …}function calc(x) { var y = x * 2 + 1;}x → 매개변수
- calc(3); x = 3;
- return y; // 반환값
- 2x + 1 = y
- return 반환값;
- function 함수명 (매개변수, …) {
- 함수 호출
- 함수의 실행흐름result = num1+num2;}참고) console.dir(…) →객체의 속성과 값 형태 출력상속proto → 속성을 통해서 접근
- [[Prototype]] → 프로토타입 체인 - 상속 관계 링크
- 객체간의 상속
- add : 변수 - 함수 객체의 주소값
- return result;
- function add(num1, num2) {
- 함수 선언문의 끌어올림global EC {window.num0 = 5;this 바인딩 : window 객체의 주소 값outer EC {num1: 10외부 변수 레코드 참조: global EC 변수 레코드 주소 : window}변수 레코드 객체 {result: 35외부 변수 레코드 참조: outer EC 변수 레코드 주소 : window}this 바인딩 - this 지역변수 값 결정
- 유효범위 체인(Scope)
- this 바인딩 : 호출한 객체의 주소값
- }
- num2: 20,
- inner EC {
- this 바인딩 : 호출한 객체의 주소값
- }
- 변수 레코드 객체 : {
- }
- 외부 변수 레코드 참조 : null
- 변수 레코드 - window의 하위 속성으로 변수가 정의
- 함수 객체 (실행 X) → 번역(평가) → 실행 가능 객체(EC - Execution Context) → 실행
- 값으로서의 함수일등 함수 : 변수와 함수를 동등하게 취급, 함수 == 값
- 매개변수로 함수 객체를 사용
- 반환값으로 함수 객체를 사용(클로저…)
- 함수(X), 함수 객체(O) - 값이 있음, 변수에 대입 가능
- 참조에 의한 호출과 값에 의한 호출
변수의 유효범위
- 전역 유효 범위와 지역 유효범위→ 유효범위 체인(Scope)
- → 함수 지역
- 변수의 충돌
- 함수 안에서 변수 선언과 변수 끌어올림
- → 호이스팅
- 함수 안에서 변수 선언 생략
- 블록 유효 범위 : let과 constlet, const → { …. }const : 상수 선언자- 값 변경이 불가
- ㅣㄷ→ 변수선언 const→ 변경이 필요한 경우 let 변결,변수는 기본적으로 const로 정의, 변경이 필요한 경우만 let으로 사용
- let : 변수 선언자 - 값 변경이 가능
- var : 함수 지역이 유효범위 → 오류가 너무 많아서 이제 안 쓴다.
- 함수 리터럴로 함수 정의하기
- const 변수명 = 함수 객체;
- 객체의 메서드
- 즉시 실행 함수
- 함수 정의와 동시에 호출
- //실행코드
- 가변길이 인수 목록(Arguments 객체)
argiuments - 인수 : 매개변수에 대입된 값
parameter - 인자 : 매개변수
전개 연산자, 나머지 연산자: …
생성자
함수 객체 → 다른 객체 생산
new 연산자 : 메모리에 공간을 생성 연산자
생성자 함수명
첫 시작 문자 대문자
객체가 생성되는 과정
- 함수 객체에 정의된 prototype 객체의 상속
- this 값을 상속을 받은 객체로 변경함으로써 초기화
function …
new Funtion(()
apply(thisArg, …)
call(thisArg, …)
생성자 함수 객체의 상속
연산자
instanceof : 객체의 출철르 체크 (프로토타입 체인)
참고)
객체간의 상속
프로토타입 체인 연결
[[Prototype]] : 프로토타입 체인
proto
'Languages > JavaScript' 카테고리의 다른 글
4. 배열 (0) | 2024.04.06 |
---|---|
3. 내장객체 (0) | 2024.04.01 |
1-2. 제어문, 조건문, 반복문(javascript) (0) | 2024.03.24 |
1-1. 실습방법, 주석, 변수, 연산자(javascript) (3) | 2024.03.23 |
실습 방법: 구글 브라우저 들어가서 오른쪽 마우스, 검색(F12), 콘솔들어가기
enter : 실행
SHIFT + 엔터 : 줄 개행(다음줄로 이동)
위쪽 방향키 : 입력했던 코드 보기
ctrl +R, F5 : 코드 다 없어짐
객체
(object)
사물, 대상
- 객체 리터럴
- 객체는 이름과 값을 한쌍을 묶은 데이터를 여러개 모은 것
- 객체는 데이터 여러개를 하나로 모은 복합 데이터로 연관배열 또는 사전(Diction) 이라고 부릅니다.
{
이름:값,
이름:값,
이름:값,
…
}
이름 → 속성(property)
→ 변수와 동일
값 : 숫자, 문자, 논리값, undefined, null, 객체 → 전부 값으로 사용 가능
변수명.속성명;
변수명[’속성명’];
- 객체 리터럴로 객체 생성하기CRUDR - READ : 조회D - DELETE : 삭제
- 수정 : 있는 속성명에 값을 대입하면 변경이 된다.
- U - UPDATE : 수정
- C - CREATE : 생성
- 데이터
- 프로퍼티 추가와 삭제삭제 : delete 변수명.속성명;
- 추가 : 없는 속성명에 값을 대입하면 새로운 속성이 추가
- in 연산자로 프로퍼티가 있는지 확인하기
in : 객체의 속성명의 존재 유무 체크
for … in 구문 : 객체의 속성명을 가지고 반복
- 메서드
- 객체 안에 정의된 함수
- 객체는 참조 타입데이터 영역힙 영역 - 객체 전용 메모리
- 스택 영역 - 함수 전용 메모리
- 메모리
함수
- 일련의 처리를 하나로 모아 언제든 호출할 수 있도록 만들어 놓은것
- 기능
- 메서드라고도 한다.
- 자바스크립스의 함수는 함수가 아니다. 객체이다!!!!
- 함수 선언문으로 함수 정의하기// 실행 코드 …}function calc(x) { var y = x * 2 + 1;}x → 매개변수
- calc(3); x = 3;
- return y; // 반환값
- 2x + 1 = y
- return 반환값;
- function 함수명 (매개변수, …) {
- 함수 호출
- 함수의 실행흐름result = num1+num2;}참고) console.dir(…) →객체의 속성과 값 형태 출력상속proto → 속성을 통해서 접근
- [[Prototype]] → 프로토타입 체인 - 상속 관계 링크
- 객체간의 상속
- add : 변수 - 함수 객체의 주소값
- return result;
- function add(num1, num2) {
- 함수 선언문의 끌어올림global EC {window.num0 = 5;this 바인딩 : window 객체의 주소 값outer EC {num1: 10외부 변수 레코드 참조: global EC 변수 레코드 주소 : window}변수 레코드 객체 {result: 35외부 변수 레코드 참조: outer EC 변수 레코드 주소 : window}this 바인딩 - this 지역변수 값 결정
- 유효범위 체인(Scope)
- this 바인딩 : 호출한 객체의 주소값
- }
- num2: 20,
- inner EC {
- this 바인딩 : 호출한 객체의 주소값
- }
- 변수 레코드 객체 : {
- }
- 외부 변수 레코드 참조 : null
- 변수 레코드 - window의 하위 속성으로 변수가 정의
- 함수 객체 (실행 X) → 번역(평가) → 실행 가능 객체(EC - Execution Context) → 실행
- 값으로서의 함수일등 함수 : 변수와 함수를 동등하게 취급, 함수 == 값
- 매개변수로 함수 객체를 사용
- 반환값으로 함수 객체를 사용(클로저…)
- 함수(X), 함수 객체(O) - 값이 있음, 변수에 대입 가능
- 참조에 의한 호출과 값에 의한 호출
변수의 유효범위
- 전역 유효 범위와 지역 유효범위→ 유효범위 체인(Scope)
- → 함수 지역
- 변수의 충돌
- 함수 안에서 변수 선언과 변수 끌어올림
- → 호이스팅
- 함수 안에서 변수 선언 생략
- 블록 유효 범위 : let과 constlet, const → { …. }const : 상수 선언자- 값 변경이 불가
- ㅣㄷ→ 변수선언 const→ 변경이 필요한 경우 let 변결,변수는 기본적으로 const로 정의, 변경이 필요한 경우만 let으로 사용
- let : 변수 선언자 - 값 변경이 가능
- var : 함수 지역이 유효범위 → 오류가 너무 많아서 이제 안 쓴다.
- 함수 리터럴로 함수 정의하기
- const 변수명 = 함수 객체;
- 객체의 메서드
- 즉시 실행 함수
- 함수 정의와 동시에 호출
- //실행코드
- 가변길이 인수 목록(Arguments 객체)
argiuments - 인수 : 매개변수에 대입된 값
parameter - 인자 : 매개변수
전개 연산자, 나머지 연산자: …
생성자
함수 객체 → 다른 객체 생산
new 연산자 : 메모리에 공간을 생성 연산자
생성자 함수명
첫 시작 문자 대문자
객체가 생성되는 과정
- 함수 객체에 정의된 prototype 객체의 상속
- this 값을 상속을 받은 객체로 변경함으로써 초기화
function …
new Funtion(()
apply(thisArg, …)
call(thisArg, …)
생성자 함수 객체의 상속
연산자
instanceof : 객체의 출철르 체크 (프로토타입 체인)
참고)
객체간의 상속
프로토타입 체인 연결
[[Prototype]] : 프로토타입 체인
proto
'Languages > JavaScript' 카테고리의 다른 글
4. 배열 (0) | 2024.04.06 |
---|---|
3. 내장객체 (0) | 2024.04.01 |
1-2. 제어문, 조건문, 반복문(javascript) (0) | 2024.03.24 |
1-1. 실습방법, 주석, 변수, 연산자(javascript) (3) | 2024.03.23 |