>웹 프론트엔드 >JS 튜토리얼 >JavaScript 함수 매개변수 제한사항 설명_javascript 기술

JavaScript 함수 매개변수 제한사항 설명_javascript 기술

WBOY
WBOY원래의
2016-05-16 18:15:591172검색
테스트 결과:

Safari 아래에는 65535개가 있습니다. 저장하기에는 부족합니다(2바이트 16 1).

다른 브라우저는 적어도 int.MaxValue입니다. FireFox는 심지어 실제 매개변수를 유지하기 위해 long을 사용한다고 합니다.
다른 브라우저는 int일 수도 있고 uint일 수도 있습니다. 결국 병목 현상은 65535에 있다는 것을 알고 있습니다.

위의 내용을 바탕으로 배열을 연결할 때 a=a.concat(b) 대신 [].push.apply(a,b)를 사용하는 것을 고려해 볼 수 있습니다.
Safari의 경우 b의 길이는 65535를 초과할 수 없다는 점만 참고하면 됩니다.
concat의 문제점은 생성된 새 배열이 두 배열 a와 b를 순회한 다음 a와 b의 요소를 순서대로 배치한다는 것입니다.

테스트 코드:
var 개수 = 100000, a = [1,2,3], b = [4,5,6], r = [], i, d;
d = 새 날짜 ;

for (i = count; i-- ;){
a.concat(b);
}
r[0] = 새 날짜 - d;

d = 새 날짜 ;


for (i = count; i-- ;){
r.push.apply(a,b );
//a = [1,2,3] ;
}
r[1] = 새 날짜 - d;
경고(r);

ie6 chrome2 safari 3 firefox 2와 같은 오래된 브라우저라도 일부 브라우저가 제거되더라도 푸시에서는 완전히 승리한다고 결론을 내릴 수 있습니다.
//a = [1, 2 ,3]; 실제로 concat보다 효율이 좋습니다.
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.