ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 항해2주차 - Node.js / Mission 3 함수와 객체
    항해 2023. 1. 19. 17:34

    Question 1

    1. 해쉬 자료구조란?

    키(Key)와 값(Value) 쌍으로 이루어진 데이터 구조를 말한다.

     

    2. 자바스크립트 객체로 주로 하는 일이란?

    객체는 어떠한 속성값과 행동을 가지고 있는 데이터다.

    예를 들어 자동차를 본다면, 사전적 의미는 '원동기를 장치하여 그 동력으로 바퀴를 굴려서 

    철길이나 가설된 선에 의하지 아니하고 땅 위를 움직이도록 만든 차' 인데

    사전적 의미뿐만 아니라 사람이 탈 수 있고, 앞뒤로 움직이는 행동을 할 수 있고

    차 앞뒤에 있는 차량 번호 정보와 차량 디자인, 제조사, 모델명 정보도 있다.

    이 모든 정보와 행위를 묶은 데이터를 하나의 자동차 객체로 볼 수 있다.

    또다른 예로 기차역에서 승차권을 발매하는 경우) 

    실체인 '손님'과 동작인 '승차원 주문' 은 하나의 객체임.

    실체인 '역무인'과 동작인 '승차권 발매' 도 하나의 객체임.

     

    객체들이 가진 속성중의 상태들은 value or attribute

    객체들이 가진 행동들은 method라고 한다.

     

    객체는 프로퍼티의 집합.
    더 자세히 말하면 프로퍼티와 메서드로 이루어진 집합체다.

    객체는 데이터를 가질 수도, 어떠한 행위를 할 수도 있다.
    즉, 객체는 프로퍼티와 메서드로 구성된 집합체다.

     

    3. 자바스크립트 객체의 프로퍼티란?

    파일 또는 문자열, 하드웨어 등이 가지고 있는 고유의 정보' 

    요소, 속성

    프로퍼티(property)

    프로퍼티는 객체의 상태를 나타내는 값이다.
    또 다시 프로퍼티는 키와 값으로 구성되어 있다.

    • 프로퍼티
      • name: 'John'
      • age: 8
    • 프로퍼티 키(key)
      • name
      • age
    • 프로퍼티 값(value)
      • 'John'
      • 8

     

    4. 단순한 해쉬와 자바스크립트 객체의 차이점이란?

    해시는 임의의 길이인 데이터를 고정된 길이의 데이터로 바꾸는 것

    객체는 어떤 속성값과 행동을 가지고 있는 데이터

     

    5. 함수와 메서드의 차이는 무엇일까요? 가장 핵심적인 차이는 무엇이고, 왜 굳이 이렇게 구분했을까?

    객체의 프로퍼티 값이 함수인 경우를 메소드라고 부른다

    프로퍼티(=요소,속성)

    함수는 특정 작업을 수행하기 위해 설계된 기능이다. (여러 문장들이 하나의 기능을 구현하도록 구성한 것)

    메서드는 객체의 프로퍼티가 함수인 경우다. (그 함수 중에서 클래스 내부에 정의한 함수 메소드라고 부르는 것이다. 또한 메소드는 객체의 속성을 다루기 위한 행위를 정의한 것이라는 의미도 포함하고 있다.)

    함수는 직접 호출할 수 있다.

    메서드는 점 표기법 또는 대괄호 표기법을 사용하여 호출할 수 있습니다

    즉, 독립적으로 존재하는 함수이냐, 클래스 내부에 종속되어 있느냐의 구분으로 함수와 메소드를 구분할 수 있다.

     

    Question 2.

     

    1. 자바스크립트에서 일급객체란? 왜 그건 일급 객체일까요?

    다른 객체들에 일반적으로 적용 가능한 연산을 모두 지원하는 객체를 가리킨다.

    보통 함수에 인자로 넘기기, 수정하기, 변수에 대입하기와 같은 연산을 지원할 때 일급 객체라고 한다.

    • 무명의 리터럴로 생성할 수 있다. (런타임에 생성이 가능하다.) => 무명 리터럴이 의미하는 것은 함수 표현식을 뜻함. 일급 객체란 값으로 표현될 수 있기 때문에 함수 표현식으로 사용이 가능하다.
    • 변수나 자료구조(객체, 배열)에 저장할 수 있다.
    • 함수의 매개변수에 전달할 수 있다.
    • 함수의 반환값으로 사용할 수 있다.

     

    2. 다른 언어에서의 함수는 어떤 특징이 있나요?

    객체지향이랑 함수지향 차이??

     

    3. 생성자 함수에 대해서 조금만 더 설명해줄 수 있나요?

    생성자 함수와 일반 함수에 기술적인 차이는 없으나 생성자 함수는 아래 조건을 따른다.

    1. 함수 이름의 첫 글자는 대문자로 시작한다.
    2. 반드시 'new' 연산자를 붙여 실행한다.

     

    3-1

    생성자 함수와 일반 함수에 기술적인 차이는 없으나
    함수 이름의 첫 글자는 대문자로 시작하고,
    반드시 'new' 연산자를 붙여 실행한다.

    let user = {
         name : 'Mike',
         age : 30,
    }

     

    이렇게 비슷한 객체를 여러개 만들어야 할 때 사용하는 것이 생성자 함수이다.

    function User(name, age) {
         this.name = name;
         this.age = age;
    }
    let user1 = new User('Mike', 30);
    let user2 = new User('Ann', 25)
    let user3 = new User('Tom', 20)

     

    User(첫 글자는 대문자로) 라는 함수를 만들었고
    이름과 나이를 인자로 받아서 this에 넣어주고 있음.
    그리고 new 연산자를 사용하여 호출한다.
    그럼 비슷한 객체 3개가 만들어 진다.
    생성자 함수는 붕어빵틀이라고 생각하면 이해하기 쉽다
    이름과 나이는 재료고, 재료를 가지고 붕어빵인 객체를 찍어내는것.

     

    댓글

Designed by Tistory.