본문 바로가기
JS

자바스크립트 주요 용어와 기본 개념, 호이스팅이란?

by memory-log 2021. 1. 7.

변수

하나의 값을 저장하기 위해 확보한 메모리 공간 자체, 메모리 공간을 식별하기 위해서 붙인 이름

선언 시 var, let, const 키워드를 사용한다. (var는 es6 이전 키워드)

 

var

variable, 변할수 있는 값

 

var 단점

함수 레벨 스코프를 지원한다.

블록 레벨 스코프를 지원하지 않는다.

-> 의도치 않게 전역 변수가 선언 되어 사이드 이펙트가 발생하게 된다.

 

상수 const

constant, 한번 정해지면 변하지 않는, 단한번만 할당할 수 있는 변수

값을 재할당 할수 없어서 변수에 저장된 값을 변경할 수 없는 값

 

할당

변수에 값을 대입 저장 하는 일

 

참조

변수에 저장된 값을 읽어들이는 일

 

식별자

어떤 값을 구별해서 식별할 수 있는 고유한 이름

값이 아닌 메모리 주소를 기억하고 있다.

 

undefined

원시값, 선언한 후 값을 할당하지 않은 변수 혹은 값이 주어지지 않은 인수에 자동으로 할당된다.

값을 저장하기 위한 메모리공간 확보 후 암묵적으로 undefined 를 할당해 초기화한다.

 

호이스팅

변수 선언이 순차적으로 실행되는 시점인 런타임이 아니라 그 이전 단계에서 먼저 실행되게 된다.

변수 선언문의 코드의 선두로 끌어 올려진 것처럼 동작하게 되는 특징, 변수 호이스팅이라고 한다.

 

JavaScript에서 컨텍스트 실행이 작동하는 방식 때문에 함수를 작성하기 전에 함수를 호출해도 여전히 동작한다.

 

실행차이

- 변수 선언 : 런타임 이전에 실행

- 값의 선언 : 코드가 순차적으로 실행되는 시점인 런타임에 실행

 

Falsy 값

불리언 문맥에서 false로 평가되는 값

false
0
-0
0n
''
null
undefined
NaN

 

 

댓글