Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Cách tốt nhất để nối chuỗi (concatenate strings) trong JavaScript?

Cách nhanh nhất và tốt nhất để nối chuỗi trong JavaScript hiện đại là dùng Template Literals (Backticks) hoặc toán tử +.

So sánh các cách

CáchVí dụƯu điểmNhược điểm
Template Literal (ES6)`${a} ${b}`Đọc dễ, hỗ trợ multi-line, expression, nhanhCần ES6+
Toán tử +a + " " + bHỗ trợ mọi trình duyệt, nhanhDài dòng nếu nhiều chuỗi
Array.join()[a, b].join(" ")Tốt cho mảng lớn, tránh tạo trung gianVerbose cho 2-3 chuỗi
concat()a.concat(b)Functional styleChậm hơn +, không hỗ trợ nhiều tham số tốt
StringBuilder patternarr.push(); arr.join()Hiệu năng tốt cho loop nối nhiềuPhức tạp

Ví dụ Template Literal (Khuyến nghị)

<!DOCTYPE html>
<html>
<body>
    <script>
        var str1 = "Xin chào";
        var str2 = "Thế giới";
        var name = "An";
        
        // Template literal - đọc dễ, hỗ trợ expression
        var result = `${str1} ${str2}, ${name.toUpperCase()}!`;
        document.write(result); // "Xin chào Thế giới, AN!"
        
        // Multi-line
        var html = `
            <div>
                <h1>${str1}</h1>
                <p>${str2}</p>
            </div>
        `;
    </script>
</body>
</html>

Hiệu năng (Modern Engines - V8, SpiderMonkey, JavaScriptCore):

  • Toán tử + và Template Literal được tối ưu hóa rất tốt.
  • Trong loop nối nhiều chuỗi: dùng arr.push() rồi arr.join('') cuối cùng.
  • Tránh str += "..." trong loop lớn (tạo nhiều object trung gian).

Best Practice:

// 2-3 chuỗi: Template literal
const msg = `Hello ${name}, welcome to ${site}!`;

// Nhiều chuỗi trong loop:
const parts = [];
for (const item of items) {
    parts.push(process(item));
}
const result = parts.join('');