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

Truyền biến JavaScript trong AJAX calls


Để truyền biến JS trong AJAX calls, thay thế:

var page = parseInt(getUrlParameter('page'));

Thành (sử dụng unary plus + để convert sang number, fallback default):

var page = +getUrlParameter("page") || 100;

Ví dụ

<html>
  <script>
    function getUrlParameter(param) {
      return param === "page" ? 500 : false;
    }
    var page = +getUrlParameter("Demo") || 100; // false → 0 → fallback 100
    alert(page); // 100
    page = +getUrlParameter("page") || 100;   // "500" → 500
    alert(page); // 500
  </script>
  <body></body>
</html>

Giải thích kỹ thuật

  • +value (unary plus) chuyển string sang number nhanh hơn parseInt/Number(). +"500" → 500, +false → 0.
  • || 100: Nếu kết quả chuyển đổi là 0, NaN, null, undefined, "", false (falsy) → dùng default 100.
  • Cảnh báo: Nếu page = 0 là giá trị hợp lệ, || sẽ sai (0 là falsy). Dùng ?? (nullish coalescing) thay thế: +getUrlParameter("page") ?? 100.

Best Practice AJAX hiện đại

// Fetch API + URLSearchParams (khuyên dùng)
const params = new URLSearchParams(window.location.search);
const page = Number(params.get("page")) || 1; // hoặc params.get("page") ?? "1"

fetch(`/api/posts?page=${page}`)
  .then(res => res.json())
  .then(data => console.log(data));

// Hoặc với async/await
async function loadPage() {
  const page = Number(new URLSearchParams(location.search).get("page")) ?? 1;
  const response = await fetch(`/api/posts?page=${page}`);
  return response.json();
}