#TIL1 var vs let vs const / data types

💡 var vs let vs const

var, let, const 모두 자바스크립트의 변수 선언자이다.

1. var

let이 등장하기 전에 쓰이던 변수 선언자로, 현재에는 지양하고 있다. 그 이유 중 하나는 "var hoisting".

  age = 4;
  console.log(age) // 4
  var age;

이렇게 변수가 선언되기도 전에 값을 할당할 수 있다. 이것은 var가 최상단으로 hoisting 되기 때문이다.

또한 var 는 block scope 를 무시한다.

{
  age = 4;
  var age;
}
console.log(age); // 4

이렇게 block scope 안에서 정의된 변수도 밖에서 호출할 수 있다.

2. let

그래서 나온 변수 선언자가 let 이다. var 의 단점들을 보완해서 ES6에 추가되었다. 변수 선언자는 var 대신 let 을 쓰면 된다.

3. const

const도 var, let 과 같이 변수 선언자이지만, 차이점은 값을 선언함과 동시에 데이터를 할당하면 바꿀 수 없다.

const 를 쓰면 1) 안전성 2) thread 안정성 3) 실수 방지 를 확보할 수 있으니 꼭 let 을 써야하는 상황이 아니면 const 를 쓰는 것을 권장한다.

💡 Variable types

  • primitive, single item: number, string, boolean, null, undefined, symbol
  • object, box container
  • function, first-class function

그 중 기본적인 데이터 타입으로는

  1. numbers : 17, 17.1, -17
  2. strings : “Hello World”, “17”
  3. Booleans : true, false
  4. null : null / let x = null;
  5. undefined : undefined / let x;
  6. symbol : 고유한 식별자를 만들 때 사용
const symbol1 = Symbol('id');
const symbol2 = Symbol('id');
console.log(symbol1 === symbol2); // false

string 이 똑같을 때 동일한 symbol 을 만들고 싶다면?

const gSymbol1 = Symbol.for('id');
const gSymbol2 = Symbol.for('id');
console.log(gSymbol1 === gSymbol2); // true

좋은 웹페이지 즐겨찾기