Có thể tạo mảng bằng constructor new Array(), tuy nhiên cách này có hành vi đặc biệt cần lưu ý.
Các cách sử dụng new Array():
// 1. Truyền nhiều đối số -> mảng chứa các phần tử đó
new Array(1, 2, 3, "A", "B"); // [1, 2, 3, "A", "B"]
// 2. Truyền MỘT đối số SỐ -> tạo mảng RỖNG với độ dài = số đó
new Array(5); // [empty × 5] - mảng rỗng length=5, KHÔNG phải [5]
// 3. Truyền MỘT đối số KHÔNG phải số -> mảng chứa đối số đó
new Array("5"); // ["5"]
new Array("hello"); // ["hello"]
Ví dụ minh họa
<!DOCTYPE html>
<html lang="vi">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Tạo mảng với new Array()</title>
<style>
body { font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif; }
.result { font-size: 20px; font-weight: 500; margin: 10px 0; }
button { padding: 8px 16px; cursor: pointer; }
</style>
</head>
<body>
<h1>Tạo mảng với từ khóa new</h1>
<div style="color: green;" class="result" id="result"></div>
<button class="Btn" id="btn">NHẤN VÀO ĐÂY</button>
<h3> Nhấn nút để tạo mảng mới và hiển thị </h3>
<script>
const resEle = document.querySelector("#result");
document.querySelector("#btn").addEventListener("click", () => {
const arr = new Array(1, 2, 3, 4, "A", "B", "C", "D");
resEle.innerHTML = "arr = [" + arr.join(", ") + "]
Length: " + arr.length;
// Minh họa trường hợp đặc biệt
const emptyArr = new Array(3);
resEle.innerHTML += "
new Array(3): length = " + emptyArr.length +
", phần tử: [" + emptyArr.join(",") + "]"; // Rỗng, không phải [3]
});
</script>
</body>
</html>
Kết quả
arr = [1, 2, 3, 4, A, B, C, D] Length: 8 new Array(3): length = 3, phần tử: []
⚠️ CẢNH BÁO: Cạm bẫy new Array(number)
Đây là lỗi thường gặp:
// Ý định tạo mảng [5] nhưng thực tế tạo mảng rỗng length=5
const arr = new Array(5);
arr[0] = 10; // Có thể gán giá trị sau
// arr = [10, empty, empty, empty, empty]
Khuyên dùng: Array Literal []
// Rõ ràng, an toàn, hiệu năng tốt hơn
const arr1 = [1, 2, 3, "A", "B"];
const arr2 = []; // Mảng rỗng
const arr3 = [5]; // Mảng có 1 phần tử là số 5
Chỉ dùng new Array() khi cần tạo mảng rỗng với độ dài xác định trước (hiếm gặp) hoặc trong code generic programming.