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

Tạo mảng JavaScript với từ khóa new

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.