본문 바로가기

나의 FE피봇이야기/Javascript

[JS]데이터 타입

Var -> let

- 사용 하지 말것

- 이유는 hoisting(선언 변수가 글로벌처럼 상단으로 가기 때문에)

- NO block scope( '{ }'안 에서 선언한 것은 안에서만 쓸 수 있고 밖에서는 더 이상 사용할 수 없는데, var은 밖에서도 사용가능 = global variable)

 

const(constants)

- favor immutable data type due to some reasons(security, (hardware)thread safety, reduce human mistake)

 

 

Variable Types

- Primitive, single item : number, string, boolean, null, undefiedn, symbol
- Object, box container : single items를 하나로 묶어서 관리하는 단위
- Function, first-class function = 1) function도 변수에 할당이 가능, 2) 함수의 parameter의 인자로도 전달 가능 3) 함수에서 return type으로도 function을 return 가능

tip

console.log에서 '+'를 사용하기보다 전체를  '  ' 로 묶고 변수를 $ {  } 처리하여서 결과값을 만들것

const count = 17; // integer
const size = 17.1; // decimal number

console.log('value : ${count}, type : ${typeof count}');
console.log('value : ${size}, type : ${typeof size}');

 

 

 

Boolean

False : 0, null, undefined, Nan, ' '

true : any other value

 

symbol, create unique identifiers for objects

- 심볼은 동일한 string을 사용하여도 다른 심볼로 만들어짐.

// 다름
const symbol1 = Symbol('id')
      != const symbol2 = Symbol('id')
      
// symbolo 출력
console.log('value : ${symbol1.description}, type : ${typeof symbol1}');

 

 

 

Object

dream coding

const 로 변수값 지정한 ellie(ref)는 변경 할 수 없지만, 그 안에 속성값(field) name, age는 변경 가능

ellie.age =21;

chanagle 영역에서 age --> from 20 to 21

 

object는 너무 커고 실제로 memory

Object's ref

실제 object가 가르키고 있는 곳이지만 이 ref 통해서 실제로 object가 담겨있는 memory를 가리는 것

 

출처

dream coding