문제
입력값에 {}, [], null이 들어가면 출력값으로 type을 반환하도록 하는 함수를 만들어라
내 코드
1 2 3 4 5 6 7 8 9 10 11
| const typeIs = (data) => { if (typeof data !== "object") { throw new TypeError(`${data}는 'object' 타입이 아닙니다.`); } if (Array.isArray(data)) { return "array"; } else if (data === null) { return "null"; } return "object"; };
|
- 입력값에 object 타입만 받을 수 있도록 에러처리를 해주었다.
- if, else if 문으로 조건에 따라 반환값을 반환해주었다.
새로운 코드
1 2 3 4
| const typeIs = data => { return ({}).toString.call(data).toLowerCase().slice(8, -1); } toString() 메서드는 “[object type]”을 반환한다.
|
- call 메서드를 사용하여 data 값을 바인딩 toString() 메서드에 바인딩 해주었다.