TIL 11 | var, let, const 의 차이

Saemsol Yoo·2020년 12월 15일
0

javascript

목록 보기
2/25
post-thumbnail

https://youtu.be/OCCpGh4ujb8
드림코딩 by 엘리 님의 유튜브 강의를 보며 정리한 내용입니다.

1. Scope

block scope global scope

1-1. Block scope

block 밖에서는 block 안에 있는 내용을 볼 수 없다.

1-2. Global scope

global scope는 어느곳이나 접근이 가능하다.

그래서 global 변수들은 어플리케이션이 실행되는 순간부터 끝날 때까지 항상 메모리에 탑재되어 있기 때문에 최소한으로 쓰는 것이 좋다.
그리고 가능하면 class 나 함수 if, for loop 등 필요한 부분에서만 정의해서 쓰는 것이 좋다. 🙂


2. let

let variable mutable data type

let은 variable(변수) 이고, 변수란? 변경될 수 있는 값을 말한다. ✨ rw(read/write) 메모리의 값을 읽고 쓰는 게 가능하다

(added in ES6)



3. var

var variable hoisting has no block scope

var도 variable(변수) 이다. ✨ rw(read/write) 메모리의 값을 읽고 쓰는 게 가능하다
don`t ever use this! 왜냐면,, hoisting 되는 문제와 block scope 이 안되기 때문에

3-1. var hoisting

대부분의 프로그래밍 언어에서는 변수를 선언하고 나서 → 값을 항당하는 것이 정상적이나,
JavaScript의 var 에서는 그렇지 않다.

위와 같은 코드를 let 으로 했다면 error 가 발생
* undefined = 변수는 정의되어 있지만 아직 값이 할당되지 않았다

이런 현상을 var hoisting 이라고 한다.
var hoisting 이란, 어디에 선언했냐는 상관없이 항상 제일 위로 선언을 끌어 올려주는 것을 말한다.


3-2. has no block scope

var 는 block scope를 철저히 무시 한다.
아무리 깊은 곳에 있는 block 을 이용해 변수를 선언(var) 하더라도 어디에서나, 아무 곳에서 나 보일 수 있다. 👀

→ age 를 {block} 안에 선언을 했음에도 불구하고, 밖에서 출력을 해도 출력이 된다.



4. const

const constant immutable data type

const는 constant(상수) 이다. 상수는 한 번 할당하면 값이 절대 바뀌지 않는다!
r(read only) 메모리의 값을 읽는 것만 가능하고 다시 다른 값을 쓰는 건 불가능

Use const whenever possible!!!

🔒 값을 선언함과 동시에 할당한 뒤로는 절대 다시는 값을 변경할 수 없다.

그래서 const 는 Immutable data type 이다.

  • Mutable : 값이 계속 변경될 수 있는 것 Mutable data typelet 을 이용한 변수 선언
  • Immutable : 값이 변경되지 않는 Immutable data typeconst 를 이용한 변수 선언

Immutable data type 을 사용하면 좋은 이유

  1. security
  2. thread safety
  3. reduce human mistakes
profile
Becoming a front-end developer 🌱

0개의 댓글

관련 채용 정보