JavaScript의 배열 유형 이해: typeof가 "Array" 대신 "Object"를 반환하는 이유는 무엇입니까?
JavaScript는 다음과 같은 흥미로운 동작을 나타냅니다. typeof 연산자는 객체 배열에 대해 "객체"를 반환합니다. 이는 다음 코드와 같은 시나리오에서 관찰할 수 있습니다.
$.ajax({ url: 'http://api.twitter.com/1/statuses/user_timeline.json', data: { screen_name: 'mick__romney' }, dataType: 'jsonp', success: function (data) { console.dir(data); // Array[20] alert(typeof data); // Object }, });
위 코드에서 데이터는 Twitter 상태를 나타내는 개체의 배열입니다. console.dir()은 유형이 "Array"라고 보고하지만 typeof는 "Object"를 반환합니다.
이 동작은 JavaScript 배열이 기술적으로 객체라는 사실에서 비롯됩니다. 이는 Object 프로토타입에서 상속받습니다. 즉, 객체와 유사한 속성과 메서드를 소유한다는 의미입니다. 이 상속은 typeof의 "객체" 결과를 담당합니다.
변수가 실제로 JavaScript의 배열인지 확인하려면 다음과 같은 몇 가지 신뢰할 수 있는 메서드가 있습니다.
1. 인스턴스 오브 연산자:
var isArr = data instanceof Array;
2. Array.isArray() 메서드:
var isArr = Array.isArray(data);
3. Object.prototype.toString.call() 메서드:
isArr = Object.prototype.toString.call(data) == '[object Array]';
4. jQuery isArray() 함수(jQuery를 사용하는 경우):
var isArr = $.isArray(data);
이러한 메서드는 배열과 다른 유형의 객체를 구별할 때 typeof보다 더 정확한 결과를 제공합니다. 이러한 대안을 활용함으로써 개발자는 동작 유형으로 인한 혼란 없이 JavaScript에서 배열을 사용하여 자신있게 작업할 수 있습니다.
위 내용은 `typeof`가 JavaScript 배열에 대해 \"Object\"를 반환하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!