/ FRONTEND

클린코드 자바스크립트 1-1 변수 다루기(let & const 사용, function scope & block scope)

Clean Code JS 강좌는 여러 절로 구성되어 있습니다.

변수 다루기 😎

var를 지양하자. 👍

  • let & const 사용

var : 함수 스코프 let & const : 블록 단위 스코프 + Temporary Dead Zone

  • var는 변수 선언 및 할당 재사용 가능
var name = "이름";
console.log(name);
var name = "이름2";
console.log(name);
  • 호이스팅으로 인해, 변수 선언이 먼저 가기 때문에 아래와 같이 undefined가 나온다.
console.log(name2); // undefined
var name2 = "hello";
console.log(name2);
  • let (변수 선언 및 재할당 가능)
let name = "이름";
name = "이름2";
  • const (변수 선언시 할당해주어야 한다)
const name = "이름;

function scope & block scope 👍

  • var는 Function 단위이므로 지역에서 할당한 변수가 전역까지 오염된다.
var global = "전역"
if (global ==="전역) {
    var global = '지역'

    console.log(global); // 지역
}
console.log(global) // 지역
  • let는 block 단위이므로 전역에 오염되지 않는다.
let global = "전역"
if (global ==="전역) {
    var global = '지역'

    console.log(global); // 지역
}
console.log(global) // 전역
  • let보다 const를 사용하는 것이 좋다.
  • const는 재할당 불가만 기억하면 된다.

객체 조작은 문제 없음

const person = {
    name : "john",
    age : 27,
}

// Error 발생(재할당 불가)
// person = {
//   name : "john2",
//    age : 30,

person.name = "john2";
person.age = 30;
}


배열 조작시에도 문제 없음

const numList = [1, 2, 3, 4, 5];
numList.push(1);