2-1. 객체 리터럴, 함수, 메서드, 생성자

2024. 3. 30. 11:05· Languages/JavaScript
목차
  1. 객체
  2. 함수
  3. 변수의 유효범위
  4. 생성자

실습 방법: 구글 브라우저 들어가서 오른쪽 마우스, 검색(F12), 콘솔들어가기

enter : 실행

SHIFT + 엔터 : 줄 개행(다음줄로 이동)

위쪽 방향키 : 입력했던 코드 보기

ctrl +R, F5 : 코드 다 없어짐

객체

(object)

사물, 대상

  1. 객체 리터럴
    • 객체는 이름과 값을 한쌍을 묶은 데이터를 여러개 모은 것
    • 객체는 데이터 여러개를 하나로 모은 복합 데이터로 연관배열 또는 사전(Diction) 이라고 부릅니다.

{

이름:값,

이름:값,

이름:값,

…

}

이름 → 속성(property)

→ 변수와 동일

값 : 숫자, 문자, 논리값, undefined, null, 객체 → 전부 값으로 사용 가능

변수명.속성명;

변수명[’속성명’];

  1. 객체 리터럴로 객체 생성하기CRUDR - READ : 조회D - DELETE : 삭제
  2. 수정 : 있는 속성명에 값을 대입하면 변경이 된다.
  3. U - UPDATE : 수정
  4. C - CREATE : 생성
  5. 데이터
  6. 프로퍼티 추가와 삭제삭제 : delete 변수명.속성명;
  7. 추가 : 없는 속성명에 값을 대입하면 새로운 속성이 추가
  8. in 연산자로 프로퍼티가 있는지 확인하기

in : 객체의 속성명의 존재 유무 체크

for … in 구문 : 객체의 속성명을 가지고 반복

  1. 메서드
    • 객체 안에 정의된 함수
    참고)
  2. 객체는 참조 타입데이터 영역힙 영역 - 객체 전용 메모리
  3. 스택 영역 - 함수 전용 메모리
  4. 메모리

함수

  • 일련의 처리를 하나로 모아 언제든 호출할 수 있도록 만들어 놓은것
  • 기능
  • 메서드라고도 한다.
  • 자바스크립스의 함수는 함수가 아니다. 객체이다!!!!
  1. 함수 선언문으로 함수 정의하기// 실행 코드 …}function calc(x) { var y = x * 2 + 1;}x → 매개변수
  2. calc(3); x = 3;
  3. return y; // 반환값
  4. 2x + 1 = y
  5. return 반환값;
  6. function 함수명 (매개변수, …) {
  7. 함수 호출
  8. 함수의 실행흐름result = num1+num2;}참고) console.dir(…) →객체의 속성과 값 형태 출력상속proto → 속성을 통해서 접근
  9. [[Prototype]] → 프로토타입 체인 - 상속 관계 링크
  10. 객체간의 상속
  11. add : 변수 - 함수 객체의 주소값
  12. return result;
  13. function add(num1, num2) {
  14. 함수 선언문의 끌어올림global EC {window.num0 = 5;this 바인딩 : window 객체의 주소 값outer EC {num1: 10외부 변수 레코드 참조: global EC 변수 레코드 주소 : window}변수 레코드 객체 {result: 35외부 변수 레코드 참조: outer EC 변수 레코드 주소 : window}this 바인딩 - this 지역변수 값 결정
  15. 유효범위 체인(Scope)
  16. this 바인딩 : 호출한 객체의 주소값
  17. }
  18. num2: 20,
  19. inner EC {
  20. this 바인딩 : 호출한 객체의 주소값
  21. }
  22. 변수 레코드 객체 : {
  23. }
  24. 외부 변수 레코드 참조 : null
  25. 변수 레코드 - window의 하위 속성으로 변수가 정의
  26. 함수 객체 (실행 X) → 번역(평가) → 실행 가능 객체(EC - Execution Context) → 실행
  27. 값으로서의 함수일등 함수 : 변수와 함수를 동등하게 취급, 함수 == 값
    1. 매개변수로 함수 객체를 사용
    2. 반환값으로 함수 객체를 사용(클로저…)
    → 함수형 프로그래밍이 가능
  28. 함수(X), 함수 객체(O) - 값이 있음, 변수에 대입 가능
  29. 참조에 의한 호출과 값에 의한 호출

변수의 유효범위

  1. 전역 유효 범위와 지역 유효범위→ 유효범위 체인(Scope)
  2. → 함수 지역
  3. 변수의 충돌
  4. 함수 안에서 변수 선언과 변수 끌어올림
  5. → 호이스팅
  6. 함수 안에서 변수 선언 생략
  7. 블록 유효 범위 : let과 constlet, const → { …. }const : 상수 선언자- 값 변경이 불가
  8. ㅣㄷ→ 변수선언 const→ 변경이 필요한 경우 let 변결,변수는 기본적으로 const로 정의, 변경이 필요한 경우만 let으로 사용
  9. let : 변수 선언자 - 값 변경이 가능
  10. var : 함수 지역이 유효범위 → 오류가 너무 많아서 이제 안 쓴다.
  11. 함수 리터럴로 함수 정의하기
  12. const 변수명 = 함수 객체;
  13. 객체의 메서드
  14. 즉시 실행 함수
    • 함수 정의와 동시에 호출
    (funtion(매개변수 정의, …) {ㅁ))(인자);
  15. //실행코드
  16. 가변길이 인수 목록(Arguments 객체)

argiuments - 인수 : 매개변수에 대입된 값

parameter - 인자 : 매개변수

전개 연산자, 나머지 연산자: …

생성자

함수 객체 → 다른 객체 생산

new 연산자 : 메모리에 공간을 생성 연산자

생성자 함수명

첫 시작 문자 대문자

객체가 생성되는 과정

  1. 함수 객체에 정의된 prototype 객체의 상속
  2. 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
  1. 객체
  2. 함수
  3. 변수의 유효범위
  4. 생성자
'Languages/JavaScript' 카테고리의 다른 글
  • 4. 배열
  • 3. 내장객체
  • 1-2. 제어문, 조건문, 반복문(javascript)
  • 1-1. 실습방법, 주석, 변수, 연산자(javascript)
인정이애옹
인정이애옹
Show and prove !
인정이애옹
인정이 개발 일기
인정이애옹
전체
오늘
어제
  • 분류 전체보기 (455) N
    • 형상 관리 (2)
      • GIT (2)
    • WEB (65)
      • HTML5+CSS3 (10)
      • React (16)
      • JSP (39)
    • Languages (63)
      • JAVA (41)
      • JavaScript (5)
      • Python (17)
    • DATABASE (25)
    • Framework (29)
      • Spring (16)
      • Spring Boot (13)
    • Test framework (0)
      • TDD-JUnit5 (0)
      • Mockito (0)
      • Spring Test (0)
      • MockMvc (0)
    • 알고리즘 (20)
      • 자료구조 알고리즘 (20)
    • 자격증 (46)
      • 정보처리기사 (8)
      • 리눅스 마스터 2급 (13)
      • SQLD (7)
      • 웹디자인기능사 (11)
      • AICE BASIC (6)
      • 컴퓨터활용능력 1급 (0)
    • 프로젝트 & 포트폴리오 (107)
      • frontapp html+css 프로젝트 (2)
      • React 프로젝트 (0)
      • 자동 알약 공급기와 헬스케어 앱 (13)
      • 학생관리 + 묵찌빠 프로젝트 (13)
      • 포켓몬 도감 게시판 프로젝트 (12)
      • AI 기반 식당 예약 웹사이트 프로젝트 (47)
      • 상담 예약 사이트 (20)
      • chat gpt로 앱 & 앱사이트 만들기 (0)
    • 코딩테스트 (0)
      • 백준 (0)
      • 프로그래머스 (0)
    • 개발자 관련 독서 (2)
    • 오류 수정 기록 (0)
    • APP (6)
      • React Native (6)
    • 취업 준비 (1)
      • next.js로 이력서 제작 (1)

블로그 메뉴

  • 홈
  • 블로그 안내
  • 태그
  • 방명록

공지사항

인기 글

태그

  • html
  • 텍스트
  • github
  • 태그
  • git
  • 웹표준

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
인정이애옹
2-1. 객체 리터럴, 함수, 메서드, 생성자
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.