웹개발/혼자하는 개발 공부

[자바스크립트] 데이터 타입 & var, let, const 차이점

데브리 2021. 8. 29. 12:50

 

데브리입니다.


자바스크립트 강의는 이미 한번 듣고 리액트와 리덕스로 넘어갔었는데, 최근에 지원하면서 코딩테스트를 해보면서 아직도 자바스크립트가 많이 부족하다는 걸 깨달았어요. 다시 강의를 들으며 복습하면서 배우는 내용을 블로그에도 정리하면 코딩테스트와 면접준비에도 도움이 될 것 같아서 블로그에 남기기로 했습니다.

 

 



자바스크립트의 7가지 데이터 타입

  1. Number: Floating point numbers - Used for decimals and integers
  2. String: Sequence of characters - Used for text
  3. Boolean: Logical type that can only be true or false - Used for taking decisions
  4. Undefined: Value taken by a variable that is not yet defined('empty value')
  5. Null: Also means 'empty value'
  6. Symbol (ES5): 더이상 쓰이지 않으므로 중요하지 않음
  7. BigInt (ES6): Larger integers than the Number type can hold


* 자바스크립은 dynamic typing이므로 다른 언어들과 다르게 우리가 manually 데이터 타입을 정의하지 않아도 됨. Automatically variable에 저장된 value의 데이터 타입이 정의됨 (Value has type, NOT variable!).

 



타입은 typeof 로 확인할 수 있음.

console.log(typeof 1); //number console.log(typeof 'hello'); //string




 


 


면접에 나올 수 있는 질문!

Q: What is the difference between null and undefined?
A: undefined represents no value at all, whereas null is a value. When we define a variable and do not assign it a value, then the variable would be undefined. On the other hand, if we want a variable with no value, then we can simply assign a null value to it.

const x; // x is undefined const y = null // y is null
반응형

 

 


 

 




var, let, const의 차이점


이 세가지의 차이를 알기 전에 Scope을 먼저 알아야 하는데 3가지로 나뉜다.

  1. Global scope: Variables declared outside a function. It can be accessed and changed in any other scope.
  2. Function (local) scope
  3. Block scope (ES6): includes if statements and loops, or any other code wrapped in {}. - let, const


let: allows you to reassign the value later on.
const: value cannot be reassigned.


결론은,
가능하면 항상 const를 쓰는 연습을 해야하는데, 왜냐면 let을 써서 as little variable mutations or variable changes as possible을 하는 게 중요한데, 이후 potential bugs를 줄여주기 때문이라고. 변수의 값을 이 후에 바꿔야 할 때만 let을 쓰고, 그 이후는 무조건 const를 쓰기! ES6 이후 var은 이제 전혀 쓸 필요가 없음.