민규의 개발블로그
JavaScript 타입 본문
React를 공부하며 부족했던 Js 선수지식을 채우고자 카일 심슨의 "You Don't Know Js"란 책을 구입했다.
시리즈가 2권이 있는데 그중 "타입과 문법, 스코프와 클로저"를 읽고 공부하며 블로그에 그 내용을 정리하려 한다.
이 글은 You Don't Know Js 를 참고 하고 썼습니다.
타입
자바스크립트에 '타입'의 대략적인 정의는 자바스크립트 엔진, 개발자 모두에게 어떤 값을 다른 값과 분별할 수 있는, 고유한 내부 특성이다.
Js 타입에는 7가지의 타입이 있는데 null, undefined, boolean, number, string, object, symbol 이 있다.
값 타입은 typeof 연산자로 알 수 있는데 책을 읽으며 처음 알게 된 사실은 null 은 object 타입이란 것이다.
책에서 이 값은 버그이고 정확히 확인하려면 조건을 하나 더 붙여야 한다.
또한 function 타입은 function이지만 실제로는 object의 '하위 타입'이다. 구체적으로 함수는 '호출 가능한 객체'이다.
배열의 타입도 객체이다.
Js 에선 타입 강제를 하지 않는다.
값이 없는 변수의 값은 undefined이며 typeof 결과는 "undefined"다.
undefined는 2가지가 있는데
undefined- 접근 가능한 스코프에 변수가 선언되었으나 현재 아무런 값도 할당되지 않은 상태
undefined(unclared)- 접근 가능한 스코프에 변수 자체가 선언조차 되지 않은 상태
이 둘은 완전 다른 개념이다.
선언되지 않은 변수도 typeof를 하면 undefined로 나오는데 이는 typeof 만의 독특한 safety guard다.
satfety guard의 쓸만한 점
sum 같은 임의로 정의한 변수를 쓰지 않더라도 이런 식으로 체크하는 것이 편리하며, 내장 API 기능을 체크할 때에도 에러가 나지 않게 도와준다.
'Javascript' 카테고리의 다른 글
자바스크립트 문법 (0) | 2020.11.19 |
---|---|
자바스크립트 강제변환-2 (0) | 2020.11.17 |
자바스크립트 강제변환-1 (0) | 2020.11.16 |
자바스크립트 네이티브 (0) | 2020.11.13 |
자바스크립트 값 (0) | 2020.11.12 |