HTML-CSS-JavaScript/JavaScript

[javascript] 자바스크립트 타입 찾기

배트리버 2023. 2. 27. 16:03

자바스크립트에는 여러가지 타입이 존재합니다.( Number , String  , Null , Undefined , Boolean ... 등 )

여기서 흔히 자바스크립트의 타입이 무엇인지 확인해보기 위해서는 typeof 연산자를 활용해서 타입을 찾을 수 있습니다. 

 

그럼 한번 타입을 찾아볼까요 ? 

배열의 타입은 object ?

결과를 보니 배열의 타입은 object라고 나와있습니다. 

object는 뭘까요 ?

그 전에 알아둬야 할 지식이있습니다. 바로 자바스크립트의 타입에는 원시값과 객체로 나뉩니다. 여기서 object 는 객체입니다. 

그럼 원시값은 뭘까요 ? 바로 boolean, number, undefined, string 등이 원시값에 속합니다. 

가장 헷갈리는 것이 string 타입의 원소 값을 바꾸고 싶을 때 보통  ' = ' 을 사용해서 바꿔주려고 생각하지만 자바스크립트의 string은 원시값이기 때문에 변경할 수 없습니다! 

str의 첫번째 요소를 g로 바꿀수 없다...

typeof 연산자는 리턴으로 원시값과 객체를 리턴합니다. 따라서 배열이라고 해서 'array'를 반환하지 않습니다 ! 

만약 배열인지 아닌지 확인하기 위해선? 

Array.isArrya(배열의 이름); 을통해 true 가 반환되면 배열이고 false 가 반환되면 배열이 아닌 것을 알 수 있습니다! 

 

getType

문제

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

입력

인자 1 : anything

  • 임의의 값

출력

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

주의 사항

  • 자바스크립트에서 array, null 타입은 존재하지 않지만, 이 둘을 구분하여 출력합니다.

입출력 예시

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'

 

자바스크립트에서 array, null 타입은 존재하지 않지만 둘을 구분하여 출력해보겠습니다 ! 

function getType(anything) {
  // TODO: 여기에 코드를 작성합니다.
  let type ='';
  if(Array.isArray(anything)=== true){
    type = 'array';
  }
  else if(anything === null){
    type ="null"
  }
  else
    type = typeof(anything);
  
  return type;
}

 

오늘은 이렇게 자바스크립트의 타입을 알아보는 문제를 풀어보았습니다. 

오늘도 열공!!