변수
하나의 값을 저장하기 위해 확보한 메모리 공간 자체, 메모리 공간을 식별하기 위해서 붙인 이름
선언 시 var, let, const 키워드를 사용한다. (var는 es6 이전 키워드)
var
variable, 변할수 있는 값
var 단점
함수 레벨 스코프를 지원한다.
블록 레벨 스코프를 지원하지 않는다.
-> 의도치 않게 전역 변수가 선언 되어 사이드 이펙트가 발생하게 된다.
상수 const
constant, 한번 정해지면 변하지 않는, 단한번만 할당할 수 있는 변수
값을 재할당 할수 없어서 변수에 저장된 값을 변경할 수 없는 값
할당
변수에 값을 대입 저장 하는 일
참조
변수에 저장된 값을 읽어들이는 일
식별자
어떤 값을 구별해서 식별할 수 있는 고유한 이름
값이 아닌 메모리 주소를 기억하고 있다.
undefined
원시값, 선언한 후 값을 할당하지 않은 변수 혹은 값이 주어지지 않은 인수에 자동으로 할당된다.
값을 저장하기 위한 메모리공간 확보 후 암묵적으로 undefined 를 할당해 초기화한다.
호이스팅
변수 선언이 순차적으로 실행되는 시점인 런타임이 아니라 그 이전 단계에서 먼저 실행되게 된다.
변수 선언문의 코드의 선두로 끌어 올려진 것처럼 동작하게 되는 특징, 변수 호이스팅이라고 한다.
JavaScript에서 컨텍스트 실행이 작동하는 방식 때문에 함수를 작성하기 전에 함수를 호출해도 여전히 동작한다.
실행차이
- 변수 선언 : 런타임 이전에 실행
- 값의 선언 : 코드가 순차적으로 실행되는 시점인 런타임에 실행
Falsy 값
불리언 문맥에서 false로 평가되는 값
false
0
-0
0n
''
null
undefined
NaN
'JS' 카테고리의 다른 글
자바스크립트 연산자와 옵셔널 체이닝, optional chaining (0) | 2021.01.07 |
---|---|
Template Literals, 템플릿 리터럴이란? (0) | 2021.01.07 |
javascript ES version up to 2020, ES11 (0) | 2021.01.07 |
비동기 처리 AJAX , XMLHttpRequest (0) | 2020.12.19 |
Detect Dark Mode 다크모드 감지하기 (0) | 2020.12.19 |
댓글