[javascript] 배열(Array) 선언과 확인하기( isArray() ) 와 typeof()로 확인 안되는 이유



자바스크립트(Javascript) 배열 확인하기 => isArray() 

왜 typeof() 는 왜 안되는가?

자바스크립트(Javascript)에서 객체(object)와 더불어 배열이 존재한다.


아래의 예제를 보자.


var object = new Object(); // = {}; //
var array = new Array(); // = [];
var object2 = {};
var array2 = [];
console.log(typeof(object) );
console.log(typeof(object2) );
console.log(typeof(object) === typeof(object2));//true

console.log(typeof(array) );
console.log(typeof(array2) );
console.log(typeof(array) === typeof(array));//true

console.log(typeof(object) === typeof(array)); //true

console.log(Array.isArray(object) ); // false
console.log(Array.isArray(array2) ); // true


결과 화면 (크롬 또는 익스플로어에서 F12를 누르고 console탭을 누르시면 확인이 가능합니다.)


이와 같이 보게되면 typeof()의 반환 값을 보게되면 array , array2 , object, object2 모두 object로 반환하게 된다. 즉, typeof()는 object와 array를 구분할 수 없습니다. (typeof 반환에서 array를 반환할 수 없습니다.)

 [typeof 반환 되는 값 MDN https://developer.mozilla.org/enUS/docs/Web/JavaScript/Data_structures]



Array.isArray() 함수를 사용하여서 Array와 Object 를 구분하시면 될거 같습니다.



블로그 이미지

미나미나미

,