P粉2447306252023-08-28 15:08:49
다른 답변 중 어느 누구도 "가장 빠른 방법"을 "가장 빠른 방법"으로 설명하지 않았다는 점에 실망했습니다...
저는 여기에서 두 가지 예를 가져왔고 위의 str。 join()
和 str.reduce()
nishanths의 답변에서 를 추가했습니다. Linux의 Firefox 77.0.1에 대한 결과는 다음과 같습니다.
참고: 테스트할 때 str = str.concat()
和 str +=
를 서로 바로 앞이나 뒤에 넣으면 두 번째 테스트가 항상 조금 더 나은 성능을 발휘한다는 사실을 발견했습니다...그래서 이 테스트를 개별적으로 실행하고 다른 결과에 대해 댓글을 달았습니다...
그래도 다시 실행시키면 속도가 많이 바뀌기 해서 3번씩 측정했습니다.
한 번에 한 문자:
str = str.concat()
:841、439、956 毫秒 / 1e7 concat() 的
............str +=
:949、1130、664 毫秒 / 1e7 +='s
.......[].join()
: [] 中有 3350, 2911, 3522 ms / 1e7 个字符
......[].reduce()
:[] 中的 3954、4228、4547 毫秒 / 1e7 个字符
한 번에 26개의 문자열:
str = str.concat()
:444、744、479 毫秒 / 1e7 concat() 的
............str +=
:1037, 473, 875 毫秒 / 1e7 +='s
........[].join()
: 2693, 3394, 3457 ms / 1e7 字符串在 []
......[].reduce()
:[] 中的 2782、2770、4520 ms / 1e7 字符串
따라서 한 번에 1문자를 추가하든, 한 번에 26개 문자열을 추가하든:
str = str.concat()
和 str +=
[].reduce()
,然后是 [].join()
브라우저 콘솔에서 쉽게 실행할 수 있는 내 코드:
P粉4125335252023-08-28 14:12:16
ES6에서는 다음을 사용할 수 있습니다.
템플릿 문자열: p>
var username = 'craig'; console.log(`hello ${username}`);
ES5 이하 버전:
+
연산자
var username = 'craig'; var joined = 'hello ' + username;
문자열 concat (..)
또는 배열 방법을 사용하세요:
var username = 'craig'; var joined = 'hello '.concat(username);
또는 더 이국적으로, < code>reduce(..) 위의 항목과 결합:
var username = 'craig'; var joined = ['hello', username].join(' ');