JS에서 문자열 연결은 가장 낮은 성능 작업 중 하나라는 것을 알고 있습니다.
예를 들어:
코드 사본은 다음과 같습니다.
var text = "hello";
텍스트+= "세계!";
초기 브라우저는이 작업을 최적화하지 않았습니다.
문자열은 불변이기 때문에 연결 결과를 저장하기 위해 중간 문자열을 생성하는 것을 의미합니다. 배경에서 현을 자주 생성하고 파괴하면 제약의 성능은 매우 열악합니다.
따라서 배열 객체를 사용하여 최적화를 수행 할 수 있습니다.
예를 들어:
var buffer = [], i = 0; 버퍼 [i ++] = "hello"; // 해당 인덱스 값을 통해 요소를 추가하는 것은 푸시 메소드 버퍼보다 빠릅니다 [i ++] = "world!"; var text = buffer.join ( "");
초기 브라우저에서는 중간 문자열이 생성 및 파괴되지 않았으며, 많은 문자열 연결의 경우이 기술은 추가 방법을 사용하는 것보다 훨씬 빠릅니다.
요즘 문자열의 브라우저 최적화로 문자열 연결 상황이 변경되었습니다. Safari, Opera, Chrome, Firefox 및 IE8은 추가 연산자를 사용할 때 더 나은 성능을 보여줍니다. 그러나 IE8 이전의 버전은 최적화되지 않았으므로 배열 방법은 여전히 유효합니다. 그렇다고 문자열이 연결되면 브라우저 감지를 수행해야한다는 의미는 아닙니다. 연결 방법을 결정할 때 고려해야 할 것은 문자열의 크기와 수입니다.
문자열이 비교적 작고 (20 자 미만) 연결 횟수가 작 으면 (1000 미만) 모든 브라우저는 추가 연산자를 사용하여 1 밀리 초 미만의 연결을 쉽게 완료 할 수 있습니다. 문자열의 수 또는 크기를 늘리면 IE7의 성능이 크게 줄어 듭니다. 문자열 크기가 증가하면 Firefox의 추가 연산자와 구성 요소 기술 간의 성능 차이가 작아집니다. 문자열의 수가 증가함에 따라 Safari의 추가 연산자와 구성 요소 기술 사이의 성능 차이가 작아집니다. 크롬과 오페라의 첨가제 운영자는 문자열의 수 또는 크기를 변경할 때 항상 리드를 유지했습니다.
따라서 각 브라우저의 일관되지 않은 성능으로 인해 기술 선택은 실제 상황과 직면 한 브라우저에 따라 다릅니다.
대부분의 경우 추가 연산자가 선호됩니다. 사용자가 주로 IE6 또는 7을 사용하고 큰 문자열 크기 또는 많은 숫자를 사용하는 경우 어레이 기술이 가치가 있습니다.
일반적으로 의미 론적 문자열 인 경우 배열을 사용해서는 안됩니다.
'안녕하세요, 제 이름은' + 이름입니다.
문자열이 "유사한 상황의 반복"인 경우 다음과 같은 배열을 사용하는 것이 좋습니다.
var array = []; for (i = 0; i <length; i ++) {배열 [i] = '<li>' + list [i] + '</li'>; } document.getElementById ( '어딘가'). innerHtml = array.join ( '/n');그것이 JS 문자열 배열 연결의 성능 비교를위한 전부입니다. 모든 사람에게 도움이되기를 바랍니다.