Skip to content
This repository was archived by the owner on Jul 8, 2025. It is now read-only.
This repository was archived by the owner on Jul 8, 2025. It is now read-only.

2018.07.29 Week1_KimJeongMee #50

@jm1224k

Description

@jm1224k

1. Var와 Let의 차이 및 장단점
Var : var로 선언한 변수는 function scope의 범위를 가지고 있다. 따라서 하나의 함수 내에서는 적용 범위가 유효하며, 즉시 값을 바꾸는 것이 가능하다. 그러나 이는 규모가 큰 코드에서 버그를 발생시킬 수도 있다.
Let : let으로 선언한 변수는 block scope의 범위를 가지고 있어서, {}로 감싸고 있는 범위 내에서 유효하다. 또한 한 번 대입된 후에는 다른 값을 넣을 수 없으므로, 멤버에 접근해서 값을 변경해야 한다. 그러나 이는 규모가 큰 코드에서 버그를 방지 할 수 있다.

2. JavaScript에서 this 키워드 조사하기
this는 객체지향적으로 JavaScript를 작성할 때 사용한다. JavaScript에서 this가 가르키는 경우는 크게 5가지의 경우로 나타낼 수 있다.

  1. Global Scope에서 사용될 때 this는 전역 객체를 가르킨다.
  2. 함수에서 사용될 때에도 this는 전역 객체를 가르킨다.
  3. 객체에 속한 메서드에서 사용될 때 this는 메서드가 속한 객체를 가르킨다.
  4. 객체에 속한 메서드의 내부 함수에서 사용될 때 this는 전역 객체를 가르킨다.
  5. 생성자에서 사용될 때, this는 이 생성자로 인해 생성된 새로운 객체를 가르킨다.

3. Callback function 조사하기
JavaScript에서는 함수가 일급객체이기 때문에 함수를 인자로 사용할 수 있다. 이 때 Callback function은 특정 함수에 매개변수로서 전달된 함수를 말한다. 전달 받은 즉시 바로 실행할 필요는 없으며 함수 내부의 어느 특정 시점에 실행이 가능하다.
Callback function를 사용할 때 주의 사항은 다음과 같다. this 객체를 사용하는 메서드인 경우에는 반드시 this 객체의 context를 보호할 수 있도록 수정해야 한다. 또한 코드를 중복하여 사용하는 형태는 피해야 하며, 추상화를 제대로 시켜 더 일반적인 형태로 다양하게 사용될 수 있도록 만들어야 한다.

4. MIME type에 대해서 조사하기
MIME type(Multipurpose Internet Mail Extensions)이란 메시지 컨텐트 형식을 정의하기 위한 인터넷 표준을 말한다. 클라이언트의 웹브라우저나 웹사이트를 제공하는 웹서버에서 MIME Type이 등록되지 않는다면 사용자들은 해당하는 컨텐트를 웹브라우저에서 볼 수 없게 되며, 공식 MIME 정보는 IETF(Internet Engineering Task Force)에서 RFC 기준으로 정의하고 있다.

5. character encoding에 대해서 조사하기
문자 집합은 정보를 표현하기 위한 글자나 기호들의 집합을 말하고, 이런 문자나 기호의 집합을 컴퓨터에서 저장하거나 통신에 사용할 목적으로 부호화 하는 것을 문자 인코딩(character encoding)이라 한다. 인코딩된 문자 부호(Character code)는 다시 디코딩(복호화)하여 본래 문자나 기호로 표현할 수 있다.
대표적인 예로 모스 부호, ASCII등이 있고, MIME이나 그에 기반한 시스템은 문자 집합(charset)을 문자 인코딩으로 나타내는 데 사용한다.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions