[javascript] data types: primative

primative


Move Text

let

  • Mutable

const

  • Inmutable
  • 변수를 선언함과 동시에 값을 할당하면 변경할 수 없음
  • 자바의 상수(final)과 같음
  • 값이 변할 일이 없다면 웬만하면 const를 사용
  • thread safety

first-class function(일급함수)

  • 함수를 변수나 자료구조에 저장할 수 있음
  • 함수의 매개변수(인자)에 다른 함수를 인수로 전달할 수 있음
  • 함수의 반환 값(return 값)으로 함수를 전달할 수 있음

Infinity/-Infinity

console.log(1/0);  -> Infinity
console.log(-1/0); -> -Infinity

typeof

  • 변수의 타입을 돌려줌
const hour = 24;
const myNation = 'korea';
console.log(typeof hour);      -> number
console.log(typeof myNation);  -> string

기호

const hour = 24;
console.log('value: ' + hour); -> value: 24
console.log(`value: ${hour}`); -> value: 24
결과는 동일함

boolean

  • false : 0, null, undefined, NaN, ''
  • true : any other value;

null/undefined

  • null은 변수의 값으로 null이 할당 된 경우
  • undefined는 변수는 선언 되었지만 값이 할당 되지 않은 경우

sysmbol

  • create unique identifiers for objects
const symbol1 = Symbol('anything');
const symbol2 = Symbol('anything');

console.log(symbol1 == symbol2);    -> false

const gSymbol1 = Symbol.for('anything');
const gSymbol2 = Symbol.for('anything');

console.log(gSymbol1 == gSymbol2);  -> true

console.log(`value: ${symbol1.description}, type: ${typeof symbol}`);
  • description 을 붙여서 string으로 만들어야 출력 가능

Dynamic typing: dynamically typed language

  • 선언할 때 어떤 타입인지 선언하지 않고 프로그램이 동작할 때 할당된 값에 따라 타입이 변경되는 것
  • 이를 해결하기 위한 것이 변수를 선언할 때 타입을 선언하는 타입스크립트
let text = 'hello';
console.log(`value: ${text}, type: ${typeof text}`);
-> value: hello, type: string

text = 8;
console.log(`value: ${text}, type: ${typeof text}`);
-> value: 8, type: number

text = '8' + 5;
console.log(`value: ${text}, type: ${typeof text}`);
-> value: 85, type: string

text = '8' / 2;
console.log(`value: ${text}, type: ${typeof text}`); 
-> value: 4, type: number

links

social