문제

임의의 값을 입력받아 타입을 리턴해야 합니다.

출력

  • string 타입을 리턴해야 합니다.
1
ex) 'string', 'number', 'boolean', 'object', 'array', 'undefined', 'null', 'function'

입출력 예시

let output = getType('hello');
console.log(output); // --> 'string'

output = getType(10);
console.log(output); // --> 'number'

output = getType(true);
console.log(output); // --> 'boolean'

output = getType({ name: 'Steve' });
console.log(output); // --> 'object'

output = getType([100, 200, 300]);
console.log(output); // --> 'array'

 


 

 

아직 부족한 나의 답: 

function getType(anything) {
  let result = ''; 
  if (Array.isArray(anything) === true){
    result = 'array';
  } else if(anything === null){
    result = 'null';
  } else{
    result = typeof(anything);
  }
  
  return result

}

 

다른 효율적인 방법도 분명 존재한다..하지만 나의 실력을 향상을 위해서 오로지 내머리 속으로만 풀었긔..

typeof가 어떤 type으로 결과 값을 리턴하는지 확인한 후에, 쉽게 생각했다. 이거 그냥  typeof쓰면 다 되는거 아닌가 ? 

 

역시나 내 생각대로 안됬다 예상했다.

 return typeof(anything)

 

typeof는  array와 null을 , 'object' 라는 결과 값을 리턴

                    typeof(arr) , typeof(null).   ->  "object"


 

 

Learning Point

 

 

1. Array.isArray() 

 

Array.isArray(obj)

객체가  Array 라면 True , 아니라면 False를 반환. 

ex) Array.isArray(anything)

 

 

2. == 와 ===

 

    == : Equal Operator ,  ===: Strict Equal Operator 라고한다. 

    ==  는 a와 b  값만 같은지 비교한다. 같으면 True 다르면 False

          ex) let a = 1 과 let b = '1'(b는 string 타입) 은  ==로 비교 했을때,  True이다.

 

   === 는 값과 값의 타입이 모두 같을때만 ,  True를 반환한다. 

          ex) let a = 1 과 let b = 1 은  ===로 비교 했을때,  True이다.

 

 

3. undefined  와 null 

 

undefined는 변수를 선언하고 값을 항당하지 않은 상태. (자료형이 없는 상태 ( string, int 등 특정 타입이 없는상태 ))

null은 변수를 선언하고 빈 값을 할당한 상태. (의도적으로 비어있는 상태)

 

undefined는 원시값(Primitive Type)으로, 선언한 후에 값을 할당하지 않은 변수나 값이 주어지지 않은 인수에 자동으로 할당된다. 이 값은 전역 객체의 속성 중 하나로, 전역 스코프에서의 변수이기도 하다. 따라서 undefined 변수의 초기 값은 undefined 원시 값이다.

 

null은 원시값(Primitive Type) 중 하나로, 어떤 값이 의도적으로 비어있음을 표현한다. undefined는 값이 지정되지 않은 경우를 의미하지만, null의 경우에는 해당 변수가 어떤 객체도 가리키고 있지 않다는 것을 의미한다.

 

 

 

 

 

 

 

 

+ Recent posts