자바스크립트에서
배열 타입의 여부를 확인하는 방법에 대하여 알아보려고 합니다. 어떻게 하면 배열 타입임을 확실하고 빨리 알 수 있을까요?
# 자바스크립트 배열 확인하기, Array.iosArray()
먼저 자바스크립트에서 배열 타입을 알려면 어떻게 알 수 있을까요? 쉽게 생각해보면 아래와 같은 두 가지 방법이 떠오릅니다.
typeof <Variable>
<Variable> instanceof Array
그런데 만약 객체 타입의 값이라면? 이 경우 배열 타입을 분별하기는 어렵습니다. 왜냐하면 자바스크립트에서 배열도 객체이고 객체도 객체이기 때문입니다.
쉽게 설명하기 위해 배열을 하나 만들어 봅니다.
myArray = [];
myObj = {};
이제 위 두 변수에 대하여 타입을 확인하기 위해 각각
typeof 와
instanceof를 사용해보려고 합니다.
typeof myArray;
'object' // 출력 결과
typeof myObj;
'object' // 출력 결과
myArray isinstanceof Object
true // 출력 결과
myArray isinstanceof Array
true // 출력 결과
결과를 확인하면 배열도 객체이므로 확실히 배열임을 확인하기가 어렵습니다. 이때 사용할 수 있는 방법 중 하나가 바로 Array의
isArray() 메소드입니다.
Array.isArray(Value) // true or false배열 여부를 판단하여 불리언(Boolean)으로 반환합니다.
! Array.isArray() 예제보기
그럼 간단한 위의 변수 두 개를 isArray()를 사용하여 다시 비교해보겠습니다. 이 번에는 결과가 어떻게 나타날까요?
Array.isArray(myArray)
Array.isArray(myObj)
// 출력결과
false
true
원하는 결과를 얻었습니다. myArray는 배열임을 확인했습니다.
끝으로 다른 방법은 어떤게 있을까요? 내장함수의 존재여부를 판단할 수도 있습니다.
myObj.push !== undefined
myArray.push !== undefined
// 출력결과
false
true
push()는 Array, 배열에만 존재하므로 아래의 경우에만 true를 반환하죠. 이와 같은 방법으로도 역시 배열 타입의 확인이 가능합니다.