Cách so sánh không xác định trong JavaScript

Trong chương trình trên, một biến được kiểm tra nếu nó tương đương với

The variable is neither undefined nor null
The variable is neither undefined nor null
The variable is undefined or null
The variable is undefined or null
9.
The variable is neither undefined nor null
The variable is neither undefined nor null
The variable is undefined or null
The variable is undefined or null
9 với
if(variable == null) { .. }
1 kiểm tra cả giá trị
The variable is neither undefined nor null
The variable is neither undefined nor null
The variable is undefined or null
The variable is undefined or null
9 và
The variable is neither undefined nor null
The variable is neither undefined nor null
The variable is undefined or null
The variable is undefined or null
0. Điều này là do
The variable is neither undefined nor null
The variable is neither undefined nor null
The variable is undefined or null
The variable is undefined or null
1 đánh giá là đúng

Đoạn mã sau

if(variable == null) { .. }

tương đương với

if (variable === undefined || variable === null) { .. }

ví dụ 2. sử dụng typeof

// program to check if a variable is undefined or null

function checkVariable(variable) {

    if( typeof variable === 'undefined' || variable === null ) {
        console.log('The variable is undefined or null');
    }
    else {
       console.log('The variable is neither undefined nor null');
    }
}

let newVariable;

checkVariable(5);
checkVariable('hello');
checkVariable(null);
checkVariable(newVariable);

đầu ra

The variable is neither undefined nor null
The variable is neither undefined nor null
The variable is undefined or null
The variable is undefined or null

Toán tử

The variable is neither undefined nor null
The variable is neither undefined nor null
The variable is undefined or null
The variable is undefined or null
2 cho giá trị
The variable is neither undefined nor null
The variable is neither undefined nor null
The variable is undefined or null
The variable is undefined or null
0 trả về không xác định. Do đó, bạn có thể kiểm tra giá trị
The variable is neither undefined nor null
The variable is neither undefined nor null
The variable is undefined or null
The variable is undefined or null
0 bằng cách sử dụng toán tử
The variable is neither undefined nor null
The variable is neither undefined nor null
The variable is undefined or null
The variable is undefined or null
2. Ngoài ra, các giá trị
The variable is neither undefined nor null
The variable is neither undefined nor null
The variable is undefined or null
The variable is undefined or null
9 được kiểm tra bằng toán tử
The variable is neither undefined nor null
The variable is neither undefined nor null
The variable is undefined or null
The variable is undefined or null
7

Trong JavaScript, có hai loại giá trị đặc biệt – không xác định và null. Điều quan trọng đối với người mới bắt đầu là hiểu được sự khác biệt giữa chúng (không có giá trị và không xác định) và khi nào thì sử dụng cái gì. Hãy cùng tìm hiểu chi tiết về undefined và null trong hướng dẫn này

Mục lục

  • Giới thiệu về các giá trị không xác định và null trong Javascript
  • Không xác định vs Null - Sự khác biệt
  • Tại sao null là một đối tượng?

Giới thiệu về giá trị không xác định và null

Nhiều khi chúng ta hay nhầm lẫn giữa UNDEFINED và NULL khác nhau ở điểm nào. Nói một cách đơn giản, không xác định có nghĩa là một biến đã được khai báo nhưng chưa được gán giá trị. không xác định là một loại của chính nó (không xác định). Các biến chưa gán được JavaScript khởi tạo với giá trị mặc định là không xác định

The variable is neither undefined nor null
The variable is neither undefined nor null
The variable is undefined or null
The variable is undefined or null
1

Ở đây vì biến được khai báo nhưng không được gán giá trị nào nên mặc định biến được gán giá trị là undefined

Mặt khác, null là một đối tượng. Nó có thể được gán cho một biến dưới dạng đại diện không có giá trị. JavaScript không bao giờ đặt giá trị thành null. Điều đó phải được thực hiện theo chương trình

Ví dụ, khi bạn không biết giá trị ban đầu, bạn có thể gán giá trị null cho một biến. Hãy xem một ví dụ

The variable is neither undefined nor null
The variable is neither undefined nor null
The variable is undefined or null
The variable is undefined or null
2

Ở đây, trong ví dụ trên, biến n được gán giá trị ban đầu là null. Sau đó, trong chương trình, giá trị của biến đã được tính từ một biểu thức

Không xác định so với null - sự khác biệt

1) Các kiểu dữ liệu

Kiểu dữ liệu không xác định là không xác định trong khi kiểu dữ liệu null là đối tượng. Chúng ta có thể tìm thấy kiểu dữ liệu của cả undefined và null bằng cách sử dụng toán tử typeof

The variable is neither undefined nor null
The variable is neither undefined nor null
The variable is undefined or null
The variable is undefined or null
3

2) Trong các phép toán số học

Khi được sử dụng trong các phép tính số học, undefined sẽ dẫn đến NaN (không phải số), trong khi null sẽ được chuyển thành 0 phía sau màn hình

The variable is neither undefined nor null
The variable is neither undefined nor null
The variable is undefined or null
The variable is undefined or null
4
The variable is neither undefined nor null
The variable is neither undefined nor null
The variable is undefined or null
The variable is undefined or null
5

Vì t không được gán một giá trị nên theo mặc định, nó được gán một giá trị không xác định. Do đó, kết quả tính lãi đơn giản trong NaN

3) Không xác định và null là sai

Khi được sử dụng trong logic có điều kiện, cả undefined và null sẽ trả về false

The variable is neither undefined nor null
The variable is neither undefined nor null
The variable is undefined or null
The variable is undefined or null
6

Ở đây, toán tử phủ định kép boolean hay còn gọi là toán tử bang bang được sử dụng để kiểm tra giá trị boolean tương đương với một giá trị

The variable is neither undefined nor null
The variable is neither undefined nor null
The variable is undefined or null
The variable is undefined or null
7

Như bạn có thể thấy ở đây, cả hai biến t không được xác định và biến a được coi là null, trả về false và do đó không thỏa mãn một trong hai điều kiện if và trả về kết quả đầu ra "cả t và a đều không được xác định bằng một giá trị"

4) So sánh không xác định và null

Hãy xem điều gì sẽ xảy ra khi bạn so sánh undefined và null bằng toán tử đẳng thức JavaScript

The variable is neither undefined nor null
The variable is neither undefined nor null
The variable is undefined or null
The variable is undefined or null
8

Như bạn có thể thấy, khi toán tử đẳng thức được sử dụng, nó chỉ so sánh các giá trị. Cả undefined và null đều là falsy theo mặc định. Vì vậy, == trả về true

Nhưng khi chúng ta sử dụng toán tử đẳng thức nghiêm ngặt (===) để kiểm tra cả loại và giá trị, vì không xác định và null thuộc các loại khác nhau (từ phần Toán tử typeof), toán tử đẳng thức nghiêm ngặt trả về false

Để hiểu thêm về sự khác biệt giữa toán tử đẳng thức trừu tượng và nghiêm ngặt, hãy xem hướng dẫn tại đây

Tại sao Null là một đối tượng?

Như đã hứa, bây giờ hãy xem tại sao loại null lại là một “đối tượng”. Vì sau đó nó chỉ ra rằng null phải là một đối tượng, điều này không đúng. Trên thực tế, null là một trong những giá trị nguyên thủy trong JavaScript

Nó thực sự là một lỗi trong ngôn ngữ và rất tiếc là không thể sửa dễ dàng như vậy, vì nó sẽ phá vỡ cơ sở mã hiện có

Tuy nhiên, thực sự có một lời giải thích hợp lý đằng sau lý do tại sao null là một đối tượng trong javascript

Trong phiên bản đầu tiên của JavaScript, các giá trị được lưu trữ theo đơn vị 32 bit. 3 bit đầu tiên đại diện cho thẻ loại dữ liệu theo sau là các bit còn lại đại diện cho giá trị

Đối với tất cả các đối tượng, nó là 000 dưới dạng bit thẻ loại. null được coi là một giá trị đặc biệt trong JavaScript từ phiên bản đầu tiên của nó. null là một đại diện của con trỏ null. Tuy nhiên, không có con trỏ trong JavaScript như C. Vì vậy, null đơn giản có nghĩa là không có gì hoặc vô hiệu và được biểu thị bằng tất cả các số 0. Do đó tất cả 32 bit của nó là 0. Vì vậy, bất cứ khi nào trình thông dịch JavaScript đọc null, nó sẽ coi 3 bit đầu tiên là loại “đối tượng”. Đó là lý do tại sao typeof null trả về “đối tượng”

Chúng ta có thể so sánh với undefined trong JS không?

Trong các trình duyệt hiện đại bạn có thể so sánh biến trực tiếp với biến không xác định một cách an toàn. nếu (tên === không xác định) {. } Sau lần gán lại đó, việc so sánh trực tiếp với undefined sẽ không còn phát hiện chính xác liệu một biến có được gán giá trị hay không. Giá trị của undefined là không xác định (xem 8. 1).

Làm cách nào để phát hiện không xác định trong JavaScript?

Hãy dùng thử. kiểm tra hàm(t) { if (t === undefined) { return 'Giá trị không xác định. '; . log(test(x)); // kết quả dự kiến. "Giá trị không xác định. "

Không xác định == sai trong JavaScript?

Mô tả. Ví dụ, một giá trị sai là giá trị đánh giá là FALSE khi kiểm tra một biến. Chỉ có sáu giá trị falsey trong JavaScript. undefined , null , NaN , 0 , "" (chuỗi trống) và tất nhiên là false .

Là không xác định == null?

Có nghĩa là null bằng với không xác định nhưng không giống nhau . Khi chúng tôi định nghĩa một biến thành không xác định thì chúng tôi đang cố truyền đạt rằng biến đó không tồn tại. Khi chúng tôi định nghĩa một biến thành null thì chúng tôi đang cố truyền đạt rằng biến đó trống.