Elice SW engineer - TIL day 15

Circlewee·2022년 4월 22일
0

Elice SW 2 TIL

목록 보기
13/31

🍑 Javascript의 변수 정의

Javascript code는 Javascript engine을 통해 파싱되고 실행된다.

🍉 Javascript 코드 실행

  1. 엔진이 코드 실행 전 실행 컨텍스트를 생성한다.
  2. 생성 단계에서 엔진은 변수 선언을 읽는다.
    2-1. 함수 선언문, 함수 표현식, 변수 등을 읽어 실행 컨텍스트에 저장한다.
    변수의 경우, 실행 컨텍스트의 렉시컬 환경(Lexical Environment)을 구성한다.
    함수 선언문 외에 변수는 값이 저장되지 않는다.
  3. 실행 단계에서 엔진은 변수 값을 할당한다.
    3-1. 변수에 값을 할당하는 구문을 만나면 실행 컨텍스트에 값을 저장한다.

🍑 Hoisting

  • 변수가 선언된 시점보다 앞에서 사용되는 현상
  • var 변수의 undefined, function FUNC_NAME () {}이 해당된다.(함수 스코프)
  • let, const변수(arrow function)는 생성 단계에서 초기화되지 않기 때문에 hoisting이 발생하지 않는다.(블록 스코프)
f2(); // f4()가 uninitialized상태이기 때문에 오류

var f = function () {
  console.log("function 1");
  console.log("f3 : ", f3); // 호출 시점에서 f3이 hoisting되어서 undefined
};

f();

let f4 = () => console.log("function 4");

function f2() {
  console.log("function 2");
  f4(); // uninitialized 
}

var f3 = () => console.log("function 3");

🍑 Javascript 내장 객체

  1. globalThis: 전역 객체를 지칭하는 변수
  2. window: DOM document를 포함하는 창을 나타내는 객체
    전역 스코프에 선언된 변수는 모두 window의 property가 된다.
  3. document: 브라우저에 로드된 웹페이지, element 생성, 검색 등의 기능 제공
  4. Number: number primitive type을 감싸는 객체, 각종 변환 메소드 제공
  5. Math: 기본적인 수학 연산 메소드, 상수를 다루는 객체
  6. Date: 특정 시점의 날짜를 표시하기 위한 객체
  7. String, JSON: string primitive type을 감싸는 객체, 문자열 조작을 위한 여러 메서드 포함, JSON 객체를 다루기 위한 메서드 포함
  • Number나 String type을 new를 통해 선언하면 그것은 객체가 된다.
tip

VARIABLE instanceof OBJECT: 변수가 해당 오브젝트 타입인지 검사

profile
공부할 게 너무 많아요

0개의 댓글

관련 채용 정보