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

Khác biệt giữa JavaScript undefined và void(0)

undefined

Giá trị gốc (primitive) chỉ biến đã khai báo nhưng chưa gán giá trị.

var demo;
console.log(demo);           // undefined
console.log(typeof demo);    // "undefined"
// Kiểm tra biến tồn tại
var age = 10;
if (typeof age !== 'undefined') console.log("Biến tồn tại"); // True

void(0)

Biểu thức dùng toán tử void đánh giá 0 và trả về undefined. Dùng để lấy giá trị undefined đảm bảo (tránh biến toàn cục undefined bị ghi đè – cũ).

<a href="javascript:void(0)">Link không reload</a>
// Tương đương:
<a href="#" onclick="event.preventDefault()">Link</a>

So sánh

Khía cạnhundefinedvoid(0)
LoạiPrimitive valueBiểu thức trả về undefined
Dùng đểKiểm tra biến chưa gánÉp undefined an toàn, ngăn navigate
Ghi đè được?Có (trong non-strict mode cũ)Không (toán tử)

ES5+ strict mode: undefined không ghi đè được. void 0 (không ngoặc) cũng hợp lệ, ngắn hơn.