Là null == null trong javascript?

Có một số khác biệt giữa null và không xác định, đôi khi được hiểu là giống nhau

Sự định nghĩa

Vô giá trị. Đó là sự vắng mặt có chủ ý của giá trị. Nó là một trong những giá trị nguyên thủy của JavaScript

Chưa xác định. Nó có nghĩa là giá trị không tồn tại trong trình biên dịch. Nó là đối tượng toàn cầu

Loại hình

Vô giá trị. Sự vật

Chưa xác định. chưa xác định

Bạn có thể xem tham khảo bài viết “==” vs “===”

 
 null == undefined // true
 null === undefined // false

Nó 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

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

//demonstrating usage of undefined in javascript
var n;

console.log(n);

//undefined

Ở đâ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ụ

//demonstrating usage of null in javascript
var n = null;

//later in your program

n = array.slice(0, 2);

//example

Ở đâ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

typeof undefined;

//“undefined”

typeof null;

//“object”

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

// demonstration of arithmetic operations using undefined and null
undefined + 1;

// NaN

null + 1;

// 1
var p = 10000,

    //principal amount

    r = 14,

    //rate of interest

    t;

//time period. 

//calculate simple interest
function simpleInterest() {

    var si = (p * r * t) / 100;

    return si;

}

simpleInterest();

//NaN

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

!!undefined;

//false

!!null;

//false

Ở đâ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ị

//demonstrating that both undefined and null are falsy
var t, a = null;

if (t) {

    console.log('t is defined');

} else if (a) {

    console.log('a is defined');

} else {

    console.log('both t and a are not defined with a value');

}

//both t and a are not defined with a value

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

________số 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”

LÀ null == trong JavaScript?

Giá trị null thể hiện sự vắng mặt có chủ ý của bất kỳ giá trị đối tượng nào. Đó là một trong những giá trị nguyên thủy của JavaScript và được coi là giả đối với các phép toán boolean .

đối tượng == NULL nghĩa là gì?

Tại sao null == 0 sai?

So sánh chuyển đổi null thành một số, coi nó là 0. Đó là lý do tại sao (3) null >= 0 là true và (1) null > 0 là false. Mặt khác, kiểm tra đẳng thức == cho undefined và null được xác định sao cho, không có bất kỳ chuyển đổi nào, chúng bằng nhau và không bằng bất kỳ thứ gì khác. That's why (2) null == 0 is false.

Loại JavaScript null là gì?

Trong JavaScript null là "không có gì". Nó được coi là một cái gì đó không tồn tại. Thật không may, trong JavaScript, kiểu dữ liệu null là một đối tượng .