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

Tại sao [1,2] + [3,4] = "1,23,4" trong JavaScript?

Toán tử + trong JavaScript dùng cho cộng số hoặc nối chuỗi. Khi một vế là mảng, JS chuyển mảng thành chuỗi bằng toString() (tương đương join(',')) rồi nối chuỗi.

Quy trình đánh giá

[1,2] + [3,4]
// 1. ToString() từng mảng
'1,2' + '3,4'
// 2. Nối chuỗi
'1,23,4'

Cách đúng để nối mảng

1. concat() – Tạo mảng mới (khuyên dùng)

const a = [1,2];
const b = [3,4];
const c = a.concat(b); // [1,2,3,4] - a, b không đổi

2. Spread operator (ES6) – Ngắn gọn, hiện đại

const c = [...a, ...b]; // [1,2,3,4]

3. push() + spread – Mutate mảng gốc

a.push(...b); // a = [1,2,3,4]

4. Array.flat() – Nối nhiều mảng lồng nhau

const arrays = [[1,2], [3,4], [5,6]];
const flat = arrays.flat(); // [1,2,3,4,5,6]

Bảng so sánh

Phương phápMutate gốc?Hiệu năngHỗ trợ
concat()KhôngTốtTất cả
[...a, ...b]KhôngTốtES6+
push(...b)Có (a)Tốt (tránh tạo mảng trung gian)ES6+
a + bN/A (trả về string)KémTất cả (nhưng sai logic)