JS의 원시 타입(primary type)
- JS의 value는 총 7개로 이루어져있다.
- 원시 타입 : 문자, 숫자, 불리언, null, undefined, symbol
- 객체 타입 : 객체(배열, 함수, obj 등)
원시 타입은 immutable하다.
- JS는 다양한 메서드를 제공한다. 이는 매우 편리하지만, 헷갈리는 경우도 많다.
- 어떤 메서드는 원본을 변경하고, 어떤 메서드는 원본을 변경하지 않으며 단지 메서드가 적용된 값을 반환한다.
- 원시 타입은 immutable하다는 사실을 기억한다면, 원시 타입에 사용하는 메서드는 원본을 변경하지 않는다는 것을 알 수 있다.
var x = 10
var str = x.toString()
console.log(x)
암묵적 타입 변환
- 단항연산자 +는 피연산자가 숫자가 아닐 경우, 숫자 타입으로 암묵적 타입 변환을 수행한다.
+''
+'0'
+'1'
+'string'
+true
+false
+null
+undefined
+Symbol()
+{}
+[]
+[10, 20]
+(function(){})
불리언 타입. Truthy와 Falsy
- JS엔진은 불리언이 아닌 값에 대해서, truthy와 falsy로 나눈다. 이후, 불리언으로 평가되어야 하는 문맥에서, truthy는 true로, falsy는 false로 암묵적 타입 변환한다.
false
undefined
null
0, -0
NaN
'' (빈 문자열)