primative
Move Text
let
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
끝