'use strict';
let name = 'byeol'; *//name 이라는 변수에 byeol이라고 선언*
console.log(name);
name = 'hello'; *// hello값을 다시 선언*
console.log(name);
{ let name = 'byeol';
console.log(name);
name = 'hello';
console.log(name); }
console.log(name); //블럭 안에 내용을 불러올 수 없다.
let globalName = 'global name';
{
let name = 'byeol';
console.log(name);
name = 'hello';
console.log(name);
console.log(globalName);
}
console.log(name); //코드안에 내용을 불러올 수 없다.
console.log(globalName);
대부분 프로그래밍 언어에서는 변수를 선언하고 나서 값을 할당해야하는데
var를 사용하면서 선언도 하기 전에 값을 할당하거나 console.log로 불러올 수 있었다.
undefined로 뜨면서 변수는 정의되어있는데 값이 없네?? 라며 뜸
console.log(age);
age = 4;
var age;
var hoisting = 어디에 선언했냐에 상관없이 항상 제일 위로 선언을 끌어올려 주는 것을 말한다.
block scope이 없다. = 규모있는 프로젝트를 하다보면 블럭안에 코드를 집어 넣어도
아무곳에서 불러와져서 에러가 생김
{
age = 4;
var age;
}
console.log(age); //밖에서 불러와져버림.