JavaScript

자바스크립트에서 [object Object] 가 대체 뭘까?

Object.prototype.toString 에 대한 깊은 설명

Moon
오늘의 프로그래밍
15 min readNov 28, 2019

--

Photo by Mark Solarski on Unsplash

여러분들은 자바스크립트 개발자로 있는 동안 toString 이라는 메소드를 한 번 이상은 들어봤을 것 같다. 그리고 오픈 소스 라이브러리들에 관심이 많아서 자주 들여다봤다거나 참여를 해본 적이 있다면 오픈 소스 라이브러리들이 어떤 식으로 값의 타입을 검사하는지 엿볼 수 있는 기회가 더 많았을 거라고 생각한다.

자바스크립트 스터디를 하는 중에 타입 체크에 대한 내용을 같이 공부하고 있었다. 그러다가 어디선가 종종 본 것 같은 녀석이 있었는데, 바로 [object Object] 였다. 자바스크립트에 대해 더 서툴렀었던 과거에는 [object Object] 를 봤을 때 이게 뭔지 전혀 몰랐었다. 당연히 알아볼 생각도 하지 않았기에 대체 뭐길래 이렇게 나오는지 명확하게 알고 있지 않아 최근 스터디에서도 명쾌하게 이해를 할 수가 없었다.

그래서 찾아봤다.

Every object has a toString() method that is automatically called when the object is to be represented as a text value or when an object is referred to in a manner in which a string is expected
모든 object 는 toString() 이라는 메소드를 가지고 있는데 이 메소드는 object 가 텍스트 값으로 표현될 때나 문자열 값으로 예상되는 방식으로 object 가 참조할 때 사용됩니다.

음… 왓더..?

Image source is from Giphy

읽기 전에

해당 포스트는 독자가 자바스크립트의 prototypeprototype chain 에 대한 기본적인 이해도가 있다는 전제하에 작성된 글이다. 또한, 나도 개인 스터디에서 몰랐던 부분에 대해 짧다면 짧게 조사한 내용을 정리하는 식으로 썼으니 틀린 내용이 있다면 댓글로 정정을 해준다면 정말 고마울 것 같다. 😸

너무 길어서 스크롤을 내릴 것 같으면 이 글을…

--

--

Moon
오늘의 프로그래밍

Frontend React w/ Typescript developer based in S.Korea. Interested in UX/Testing/FE. mgyang95@gmail.com