알럽유 2023. 7. 11. 14:28
728x90
반응형

데이터를 처리하기 위해, 기억해야 한다.

▶데이터를 처리하는 과정에서, 처리 흐름마다 값들을 기억해둘 필요가 있습니다.

▶컴퓨터는 데이터를 기억하기 위해 메모리를 활용합니다.

       ▶메모리란, 컴퓨터의 기억장치

▶메모리

       ▶메모리에 데이터를 담아 기억

       ▶각각의 위치 주소값이 존재

       ▶위치를 찾기 위해서는 메모리의 주소값 사용

메모리의 주소값의 별칭, 변수

▶메모리 주소값을 대신할 식별지를 지정하고, 식별자를 통해서 데이터 접근

▶식별자 == 변수

변수란,

데이터를 담아둔 메모리의 주소를 쉽게 식별하기 위한 붙인 이름입니다.

 

자바스크립트의 변수 syntax

▶키워드 let / const / var

▶변수명

▶할당 연산자                                                                                                                                                                      

▶값

3단계를 거쳐 생성되는 변수

1. 선언단계          변수를 변수 객체에 등록한다.

2. 초기화 단계      변수를 메모리에 할당하고, undefined로 초기화한다.

3. 할당 단계          undefined로 초기화된 변수에 실제로 값을 할당한다.

변수 생성 3단계는 키워드별로 다르게 동작한다. (var , const, let)

var 키워드

▶코드 평가 단계: 선언과 동시에 초기화 진행

▶코드실행 단계: 값 할당 진행

▶코드 평가시점에 초기화가 되어있으므로, 변수의 할당문이 실행되기 전에도 참조가 가능하다. (호이스팅)

var 키워드 - 호이스팅? Hoisting

▶모든 선언문이 해당 Scop의 선두로 옮겨진 것처럼 동작하는 특성

▶함수 호이스팅, 변수 호이스팅

var 키워드 - 단점

▶키워드의 생략 가능

▶중복선언 가능

▶변수 호이스팅

var 키워드 - 단점- 전역변수화

▶전역 변수화 되어, 무분별한 변수 접근

▶스코프:

      ▶코드가 실행되는 과정에서, 변수와 같은 식별자를 찾아야하는 코드가 있을때 자바스크립트가 갖고 있는 규칙

      ▶전역 스코프 (global), 지역스코프(local)

▶의도치 않은 변수값 변경, 코드 예측이 어려워짐

 

const, let 키워드

▶코드 평가 단계: 선언 진행

▶코드 실행 단계: 초기화 진행, 값 할당 진행

▶코드 평가 시점에서 선언만 진행되므로, 변수의 할당문이 실행되기 전에 참조가 불가능합니다.

      ▶ReferenceError가 발생

 

▶블록 레벨 스코프

      ▶코드 블록 내에서 접근 가능한 스코프

▶변수에 한정적으로 접근이 가능하므로, 예측 가능한 범위 내에서 변수 변경이 일어남

 

▶const 키워드

      ▶수정이 불가능한 "상수 변수" 를 선언할때 사용

      ▶무조건 값을 할당

▶let 키워드

      ▶재할당이 가능한 변수 타입

      ▶값을 할당하지 않아도 생성