JS 딥 다이브) day2

Clear·2023년 6월 25일
0

Daily Posting

목록 보기
22/27

JS의 원시 타입(primary type)

  • JS의 value는 총 7개로 이루어져있다.
    • 원시 타입 : 문자, 숫자, 불리언, null, undefined, symbol
    • 객체 타입 : 객체(배열, 함수, obj 등)

원시 타입은 immutable하다.

  • JS는 다양한 메서드를 제공한다. 이는 매우 편리하지만, 헷갈리는 경우도 많다.
  • 어떤 메서드는 원본을 변경하고, 어떤 메서드는 원본을 변경하지 않으며 단지 메서드가 적용된 값을 반환한다.
  • 원시 타입은 immutable하다는 사실을 기억한다면, 원시 타입에 사용하는 메서드는 원본을 변경하지 않는다는 것을 알 수 있다.
	var x = 10
    
    var str = x.toString() // "10"
	
    // 원본은 변경되지 않는다. 숫자타입은 immutable하기 때문에.
    console.log(x) // 10

암묵적 타입 변환

  • 단항연산자 +는 피연산자가 숫자가 아닐 경우, 숫자 타입으로 암묵적 타입 변환을 수행한다.
+''				// 0
+'0'			// 0
+'1'		    // 1
+'string'		// NaN

+true			// 1
+false			// 0

+null			// 0

+undefined		// NaN
+Symbol()		// TypeError : Cannot convert a Symbol value to a Number

+{}				// NaN
+[]				// 0 주의.
+[10, 20]		// NaN
+(function(){})	// NaN

불리언 타입. Truthy와 Falsy

  • JS엔진은 불리언이 아닌 값에 대해서, truthy와 falsy로 나눈다. 이후, 불리언으로 평가되어야 하는 문맥에서, truthy는 true로, falsy는 false로 암묵적 타입 변환한다.
// falsy로 평가되는 값
false
undefined
null
0, -0
NaN 
'' (빈 문자열)

0개의 댓글