[Q. 변수 생성 3단계]

 

선언 / 초기화 / 할당 이있다.

 

1) 선언

 - 변수를 말 그대로 선언만 해서 변수 객체에 등록함

2) 초기화

 - 변수 객체에 대한 메모리를 할당하고, 변수는 undefined로 초기화

3) 할당

 - 초기화된 변수에 값을 할당

 

var / let / const 로 차이를 알아보자!

console.log(name);   // undefined

var name = "jack957";

 =>  error가 아닌 undefined 출력, var는 변수 선언 시 선언과 초기화가 동시에 일어나기 때문

 

아래와 동일함

var name;

console.log(name);

name = "jack957";

 

console.log(name);  // ReferenceError: name is not defined

let name = "jack957";

 =>  let은 error 발생, let도 호이스팅 되었지만 let은 선언과 초기화가 따로 일어남.

       초기화 이전에 변수에 접근하니까 ReferenceError가 발생한 것 

 

const name = "jack957"; // 선언과 초기화가 동시에 일어나서 정상작동

const name;                    //  Uncaught SyntaxError: Missing initializer in const declaration (선언만 했기 때문에 에러 발생!)

 => const 는 값이 정해지면 변경이 불가능하기 때문에, 선언할 경우 선언과 초기화를 같이 해줘야됨!

 

 

[Q. 호이스팅 이란]

자바스크립트는 실행될 때 ES6의 let, const를 포함한 모든 선언(var, let, const, function, class)를 호이스팅함.

호이스팅이란 유효범위 맨 위로 끌어올리는 것임. 실제로 끌어올리는 건 아니고 내부적으로 처리되고 메모리는 변화x

 

(함수 호이스팅)

함수선언문으로 정의된 함수는 실행되는 시점에 함수선언, 초기화, 할당이 한번에 이루어짐.

때문에 해당 함수는 유효범위 내의 어느곳에서도 호출이 가능.

 

but, 함수표현식으로 정의된 함수는 함수 호이스팅이 아닌 변수 호이스팅이 발생하기 때문에 유효범위 내에 있더라도 

함수 호이스팅이 발생x 함수표현식으로 작성할 때는 사용할 곳보다 위에서 작성해야됨.

 

평소에 함수선언문, 함수표현식, 호이스팅 여부와 관계없이 선언은 맨 위에서 작성하도록하자~

 

 

오늘부터 새벽 특새가있었다.

5시에 일어나야 늦지않게 갈 수 있는데, 2주넘게 새벽2시에 자다보니 자는것도 쉽지가 않았다...

그래도 교회 간다니까 번-쩍 깨워주셔서 일어나는건 어렵지 않았고 주섬주섬 준비해서 따릉이타고 교회로 향했다.

그런데 왠걸 안늦고 잘 갔는데 성전은 이미 꽉꽉 차있어 맨 뒤에 간이 의자에 앉아서 예배를 드렸고 2층도 3층도 만석이었다(세상에..) 사실 5시에 와서 인터치 청년 특송도 같이 했어야됐는데 좀 타협해서 새벽기도만 드리기로했었다.

특송 시간이되자 청년들이 앞에 섰는데, 5시에 온 청년들이 너무너무너무 많아서 찬송 부르기 전부터 그들의 모습에서 큰 은혜를 받았다. 그렇게 느낀건 나뿐만이 아니었으리라. 최상훈 목사님 설교는 말할 필요도 없이 최고였다.

 

새벽 기도가 끝나고 걸어서 집으로 향했는데 문득 '새벽기도엔 2시간30분 정도가 드려지는 시간이구나 하루에 가장 처음을 십일조로 드리는 거구나' 깨달음이 들었다. 처음도 아닌 새벽기도에 이런 생각이 든 것 또한 은혜었으리라.

 

뭐 그러고 집가서 아침먹고 1시간 자긴했다.. 갑자기 아침형 인간이 되기엔 평소랑 괴리가 컸다.. 이렇게 4일 특새 끝나고 나면 나아지겠지! 

+ Recent posts