6장 데이터 타입

 



false, ""(빈 문자열), 0, NaN, undefined, null 은 형변환 했을 때 false가 된다.


자바스크립트(ES6)는 7개의 데이터 타입을 제공한다.
원시타입(6개) : 숫자(number) 타입, 문자열(string) 타입, 불리언(boolean) 타입, undefined 타입, null 타입, symbol 타입
객체타입(1개) - 객체, 함수, 배열 등


6.1 숫자 타입
- 자바스크립트의 숫자 타입은 모두 실수로 처리된다

6.2 문자열 타입
작은 따옴표, 큰따옴표, 백틱으로 텍스트를 감싸면 문자열이 됨

6.5 undefined
undefined 타입의 값은 undefined가 유일함
변수를 선언한 이후 값을 할당하지 않은 변수를 참조하면 undefined가 반환됨

6.6 null
null 타입의 값은 null이 유일함
변수에 null을 할당하는 것은 의도적으로 값이 없음을 명시할 때 사용함.

6.7 심벌 타입
심벌 값은 다른 값과 중복되지 않는 유일무이한 값
심벌은 Symbol 함수를 호출해 생성한다.
var key = Symbol('key');
console.log(typeof key); // symbol

6.8 객체 타입
원시 타입을 제외한 나머지는 모두 객체타입이다.

6.9 데이터 타입의 필요성
타입이 있어야 데이터를 해석할 수 있음

6.10 동적 타이핑 - 실행시에 타입이 변할 수 있음
자바스크립트의 변수는 선언이 아닌 할당에 의해 타입이 결정(추론) 된다.
그리고 재할당에 의해 타입이 언제든 변할 수 있음
즉, 자바스크립트는 동적 타입언어이다.



7장 연산자


+연산할 때, 숫자 + 문자열만 숫자가 문자열로 바뀜 
ex) 3 + '3' = '33'

나머지는 다 숫자로 바뀌어서 계산됨

- true는 1, false는 0, null은 0 으로 변환되어 계산되고 undefined는 숫자로 타입변환되지 않는다.


- 특정 숫자가 NaN인지 아닌지 조사하려면 Number.isNaN 함수를 이용해야 한다. (NaN은 자기 자신과 일치하지 않는 유일한 값)

Number.isNaN(NaN); // true
Number.isNaN(10); // false
Number.isNaN(1+undefined); // true


- 정확한 비교 메서드 Object.is

ex) 
+0 === -0; // true
Object.is(-0, +0); // false

NaN === NaN; // false
Object.is(NaN, NaN); // true


- typeof 연산자

피연산자의 데이터 타입을 문자열로 반환

typeof '' // 'string'
typeof 1 // 'number'
typeof true // 'boolean'
typeof undefined // 'undefined'
typeof {} // 'object'
typeof function () {} // 'function' , function의 조상은 object이다

- 지수 연산자

2 ** 2; // 4
2 ** 0; // 1
2 ** -2 // 0.25

지수연산자는 이항 연산자 중에서 우선순위가 가장 높다.

- 연산자의 부수효과
할당 연산자(=), 증가/감소 연산자(++/--), delete 연산자는 다른 코드에 영향을 준다.

+ Recent posts