>  기사  >  웹 프론트엔드  >  JavaScript 학습 노트(7) 문자열 연결_javascript 기술

JavaScript 학습 노트(7) 문자열 연결_javascript 기술

WBOY
WBOY원래의
2016-05-16 18:37:29791검색
문자열 연결
1. 가장 일반적으로 사용되는 =
항상 이 방법이 가장 효율적이지 않다고 합니다. 이유는 무엇입니까? 이 방법의 실제 프로세스를 살펴볼 수 있습니다.
var str = "hello";
str = "world"
(1) "hello"를 저장할 문자열을 만듭니다.
(2) "world"를 저장할 문자열을 만듭니다.
(3) 연결 결과를 저장할 문자열을 만듭니다.
(4) str의 현재 내용을 결과에 복사합니다.
(5) "world"를 결과에 복사합니다.
(6) 결과를 가리키도록 str을 업데이트합니다.
문자열 연결이 완료될 때마다 2~6단계가 실행되므로 이 작업에는 리소스가 많이 소모됩니다. 이 프로세스를 수백, 수천 번 반복하면 성능 문제가 발생할 수 있습니다. 이 사용법은 앞으로는 폐기될 예정입니다, 하하하. ^_^
2. Join() 메소드
코드 복사 코드는 다음과 같습니다.

//버튼 호출
function JoinFn() {
var arr = new Array;
arr[0] = "Zhang San"
arr[1] = "Li Four";
alert(arr.join(""));
}

수행 단계는 다음과 같습니다.
(1) 결과를 저장합니다.
(2) 각 문자열을 결과의 적절한 위치에 복사합니다.
이 방법은 첫 번째 방법보다 빠릅니다.
3. 사용자 정의 클래스 캡슐화
C#과 같이 JavaScript에는 StringBuilder 클래스가 없지만 StringBuilder 클래스를 사용자 정의하는 방법은 이전 기사에서 언급한 바와 같습니다. "하이브리드 생성자/프로토타입 접근 방식".
코드 복사 코드는 다음과 같습니다.

//StringBuilder 클래스를 사용자 정의하여 문자 연결 String
function StringBuilder() {
this._strings = new Array();
}
StringBuilder.prototype.append = function(str) {
this._strings.push(str) ;
};
StringBuilder.prototype.toString = function() {
return this._strings.join("")
}//버튼이
함수를 호출합니다. () {
var sb = new StringBuilder();
sb.append("장산")
sb.append("lee思"); var strResult = sb.toString( ; Join()이 가장 빠른 것 같지만 세 번째가 가장 느립니다. 내 사용자 정의 StringBuilder 클래스에 문제가 있는 걸까요?
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.