변수
와 함수
가 어디에서 접근 가능한지를 결정함 (유효한 범위)const fesult = MyFeat() + 10;
어떤것에도 감싸져있지 않은 스코프, 모두가 접근 가능하다. (최상위)
const message = "Hello"; // 전역 스코프
function sayHello() {
console.log(message);} // 전역 스코프에 있는 변수에 접근 가능
sayHello();
function sayHello() {
const message = "Hello"; // 지역 스코프
console.log(message); // 함수 안에서만 접근 가능
}
sayHello();
if (true) {
const message = "Hello"; // 블록 스코프
console.log(message);} // 블록 안에서만 접근 가능
변수
와 함수
를 위로(최상단) 끌어올리는 것처럼 동작한다.변수 호이스팅
변수 선언 후 값을 할당한 후에도 변수가 호이스팅 되어 선언부만 먼저 실행됨
console.log(myNumber); // undefined 출력
var myNumber = 10;
console.log(myNumber); // 10 출력
함수 호이스팅
함수를 선언하기 전에도 호출 가능
const a = 7
double() // 기본적으로 함수 아래에 위치하는데 호이스팅을 이용해서 위로 올려도 값이 나온다!
function double() {
console.log(a * 2)
}
let a = 10;
let b = a;
console.log(b);
b = 100;
console.log(a); // 10
그 외의 모든 값
let x = {id: 1};
let y = x;
console.log(y, d);
y.title = 'Y';
console.log(x.title)