Opera의 Array native에 문제일까??
오늘 오전 내내 삽질의 연속..
IE, FF, Safari 에서는 리스팅이 잘되는데 유독 Opera에서 오 작동을 해서 결국은..
Opera의 Array method 중
slice method에 문제가 있음을 발견했습니다.
분명 같은 스팩을 사용할텐데 왜 Opera에서만 이런 문제가 발생하는 지 모르겠군요..
다음 코드를 참고하세요.
아무것도 없는 length가 4인 array
var arr = [1,2,3,4];
var xxx = arr.slice(0,10);
alert(arr);
alert(xxx);
alert(arr);
결과 ( alert(xxx)의 수행 )
IE FF Opera Safari
[1,2,3,4] [1,2,3,4] [1,2,3,4] [1,2,3,4]
당연한 결과입니다. 하지만 값이 없는 배열일 경우에는 그 결과가 달라집니다.
var arr = new Array(4); //or [,,,]
var xxx = arr.slice(0,10);
alert(arr);
alert(xxx);
alert(arr);
위의 코드의 경우 Opera의 경우에만 결과가 틀립니다.
결과 ( alert(xxx)의 수행 )
IE FF Opera Safari
[,,,] [,,,] [] [,,,]
오페라만 값이 넘어오지 않습니다.
arr 이 갖는 여러가지 배열에 상황에서 slice 메서드를 수행해 봤지만 slice에 의해
반환되어질 배열의 각 구성 요소의 내용이 undefined 면 반환된 배열의 length는 0으로 되어 버린다는 것..
'Javascript' 카테고리의 다른 글
| Closure in javascript (자바스크립트에서 클로져는 무엇인가?) (8) | 2008/03/17 |
|---|---|
| Data Caching Structure in Ajax(XHR) Pattern (2) | 2008/03/14 |
| Opera - Slice method of Array Object too bad -_-^ (4) | 2008/02/27 |
| javascript simple data type change ^-^ (4) | 2008/02/12 |
| Dynamic rendering with many HTTP Request - anti pattern (0) | 2008/02/11 |
| Ajax Performance Issue - 에이잭스 퍼포먼스 문제 (0) | 2008/01/28 |

Prev
Rss Feed
