>웹 프론트엔드 >JS 튜토리얼 >JavaScript 연구 노트 2 String Splicing_기본 지식

JavaScript 연구 노트 2 String Splicing_기본 지식

WBOY
WBOY원래의
2016-05-16 18:31:151029검색

var str="hello";
str ="world";
실제로 이 코드가 백그라운드에서 수행하는 단계는 다음과 같습니다.
(1) "hello"를 저장할 문자열을 만듭니다.
(2) "world"를 저장할 문자열을 만듭니다.
(3) 연결 결과를 저장할 문자열을 만듭니다.
(4) str의 현재 내용을 결과에 복사합니다.
(5) "world"를 결과에 복사합니다.
(6) 결과를 가리키도록 str을 업데이트합니다.
문자열 연결이 완료될 때마다 2~6단계가 실행되므로 이 작업에는 리소스가 많이 소모됩니다. 이 프로세스를 수백, 수천 번 반복하면 성능 문제가 발생할 수 있습니다. 해결 방법은 Array 객체를 사용하여 문자열을 저장한 다음 Join() 메서드(매개 변수는 빈 문자열임)를 사용하여 최종 문자열을 만드는 것입니다. 이전 코드를 다음 코드로 대체한다고 상상해 보세요.

코드 복사 코드는 다음과 같습니다.

var str =new Array();
str[1]="world";
str.join(""); >
이렇게 하면 배열에 몇 개의 문자열이 추가되더라도 Join() 메서드가 호출될 때만 조인 작업이 발생하므로 문제가 되지 않습니다. 이때 단계는 다음과 같습니다.
(1) 결과를 저장할 문자열을 만듭니다.
(2) 각 문자열을 결과의 적절한 위치에 복사합니다.



코드 복사 코드는 다음과 같습니다. function StringBuilder(){
이것 ._string= new Array();
}
StringBuilder.prototype.Append=function(str){
this._string.push(str)
}
StringBuilder.prototype.toString =function( ){
return this._string.join("");
}


효율성을 높이는 관련 기사:
HTML을 연결하는 가장 빠른 방법 배열 문자열

JavaScript에서 큰 문자열을 연결하는 StringBuffer 클래스

자세한 내용은 Script House의 이전 기사를 참조하세요.
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.