Nhận NaN trong JavaScript

Ngoài ra có 2 giá trị số đặc biệt.

javascript

typeof NaN; // => 'number'

typeof window.NaN; // => 'number'

typeof Number.NaN; // => 'number'

0 (một số lớn hơn bất kỳ số nào khác) và

javascript

typeof NaN; // => 'number'

typeof window.NaN; // => 'number'

typeof Number.NaN; // => 'number'

1 (đại diện cho khái niệm "Không phải là số")

javascript

const infinite = Infinity;

const faulty = NaN;

typeof infinite; // => 'number'

typeof faulty; // => 'number'

Mặc dù hiếm khi làm việc trực tiếp với

javascript

typeof NaN; // => 'number'

typeof window.NaN; // => 'number'

typeof Number.NaN; // => 'number'

1, nhưng nó có thể xuất hiện một cách đáng ngạc nhiên sau một thao tác không thành công trên các số

Hãy xem xét kỹ hơn giá trị đặc biệt của

javascript

typeof NaN; // => 'number'

typeof window.NaN; // => 'number'

typeof Number.NaN; // => 'number'

1. cách kiểm tra xem một biến có

javascript

typeof NaN; // => 'number'

typeof window.NaN; // => 'number'

typeof Number.NaN; // => 'number'

1 hay không và quan trọng là hiểu các tình huống tạo ra giá trị "Không phải là số"

1. số NaN

Loại số trong JavaScript là một tập hợp tất cả các giá trị số, bao gồm "Không phải là số", vô cực dương và vô cực âm

Có thể truy cập "Không phải là số" bằng cách sử dụng biểu thức đặc biệt

javascript

typeof NaN; // => 'number'

typeof window.NaN; // => 'number'

typeof Number.NaN; // => 'number'

1 hoặc dưới dạng thuộc tính của đối tượng toàn cục hoặc hàm

javascript

typeof NaN; // => 'number'

typeof window.NaN; // => 'number'

typeof Number.NaN; // => 'number'

6

javascript

typeof NaN; // => 'number'

typeof window.NaN; // => 'number'

typeof Number.NaN; // => 'number'

"Không phải là số" là một giá trị không đại diện cho số thực, mặc dù có kiểu số.

javascript

typeof NaN; // => 'number'

typeof window.NaN; // => 'number'

typeof Number.NaN; // => 'number'

1 rất hữu ích để biểu thị các hoạt động bị lỗi trên các số

Ví dụ: nhân một số với

javascript

typeof NaN; // => 'number'

typeof window.NaN; // => 'number'

typeof Number.NaN; // => 'number'

8 không phải là một phép toán hợp lệ, do đó kết quả là

javascript

typeof NaN; // => 'number'

typeof window.NaN; // => 'number'

typeof Number.NaN; // => 'number'

1

javascript

1 * undefined; // => NaN

Ngoài ra, cố gắng phân tích một chuỗi số không hợp lệ như

javascript

1 * undefined; // => NaN

0 cũng dẫn đến kết quả là

javascript

typeof NaN; // => 'number'

typeof window.NaN; // => 'number'

typeof Number.NaN; // => 'number'

1

javascript

parseInt('Joker', 10); // => NaN

Phần này trình bày chi tiết về các hoạt động tạo ra

javascript

typeof NaN; // => 'number'

typeof window.NaN; // => 'number'

typeof Number.NaN; // => 'number'

1

2. Kiểm tra sự bình đẳng với NaN

Tính chất thú vị của

javascript

typeof NaN; // => 'number'

typeof window.NaN; // => 'number'

typeof Number.NaN; // => 'number'

1 là nó không bằng bất kỳ giá trị nào, ngay cả với chính

javascript

typeof NaN; // => 'number'

typeof window.NaN; // => 'number'

typeof Number.NaN; // => 'number'

1

javascript

NaN === NaN; // => false

Hành vi này hữu ích để phát hiện xem một biến có phải là

javascript

typeof NaN; // => 'number'

typeof window.NaN; // => 'number'

typeof Number.NaN; // => 'number'

1 hay không

javascript

const someNumber = NaN;

if (someNumber !== someNumber) {

console.log('Is NaN');

} else {

console.log('Is Not NaN');

}

// logs "Is NaN"

Biểu thức

javascript

1 * undefined; // => NaN

6 chỉ là

javascript

1 * undefined; // => NaN

7 nếu

javascript

1 * undefined; // => NaN

8 là

javascript

typeof NaN; // => 'number'

typeof window.NaN; // => 'number'

typeof Number.NaN; // => 'number'

1. Do đó, đoạn mã trên ghi vào bảng điều khiển

javascript

parseInt('Joker', 10); // => NaN

0

JavaScript có các chức năng tích hợp để phát hiện

javascript

typeof NaN; // => 'number'

typeof window.NaN; // => 'number'

typeof Number.NaN; // => 'number'

1.

javascript

parseInt('Joker', 10); // => NaN

2 và

javascript

parseInt('Joker', 10); // => NaN

3

javascript

isNaN(NaN); // => true

isNaN(1); // => false

Number.isNaN(NaN); // => true

Number.isNaN(1); // => false

Sự khác biệt giữa các hàm này là

javascript

parseInt('Joker', 10); // => NaN

3 không chuyển đổi đối số của nó thành một số

javascript

isNaN('Joker12'); // => true

Number.isNaN('Joker12'); // => false

javascript

parseInt('Joker', 10); // => NaN

5 chuyển đổi đối số

javascript

parseInt('Joker', 10); // => NaN

6 thành một số, đó là

javascript

typeof NaN; // => 'number'

typeof window.NaN; // => 'number'

typeof Number.NaN; // => 'number'

1. Do đó, hàm trả về

javascript

1 * undefined; // => NaN

7

Ở phía bên kia,

javascript

parseInt('Joker', 10); // => NaN

9 kiểm tra mà không chuyển đổi nếu đối số là

javascript

typeof NaN; // => 'number'

typeof window.NaN; // => 'number'

typeof Number.NaN; // => 'number'

1. Hàm trả về

javascript

NaN === NaN; // => false

1 vì

javascript

parseInt('Joker', 10); // => NaN

6 không bằng

javascript

typeof NaN; // => 'number'

typeof window.NaN; // => 'number'

typeof Number.NaN; // => 'number'

1

3. Các hoạt động dẫn đến NaN

3. 1 Phân tích số

Trong JavaScript, bạn có thể chuyển đổi chuỗi số thành số

Ví dụ: bạn có thể dễ dàng chuyển đổi chuỗi

javascript

NaN === NaN; // => false

4 thành số float

javascript

NaN === NaN; // => false

5

javascript

const numberString = '1.5';

const number = parseFloat(numberString);

number; // => 1.5

Khi không thể chuyển đổi chuỗi thành số, hàm phân tích cú pháp trả về

javascript

typeof NaN; // => 'number'

typeof window.NaN; // => 'number'

typeof Number.NaN; // => 'number'

1. chỉ ra rằng phân tích cú pháp đã thất bại. Dưới đây là một số ví dụ

javascript

const infinite = Infinity;

const faulty = NaN;

typeof infinite; // => 'number'

typeof faulty; // => 'number'

0

Khi phân tích cú pháp số, bạn nên xác minh xem kết quả phân tích cú pháp có phải là

javascript

typeof NaN; // => 'number'

typeof window.NaN; // => 'number'

typeof Number.NaN; // => 'number'

1 hay không

javascript

const infinite = Infinity;

const faulty = NaN;

typeof infinite; // => 'number'

typeof faulty; // => 'number'

1

Quá trình phân tích cú pháp của

javascript

NaN === NaN; // => false

8 không thành công, do đó,

javascript

NaN === NaN; // => false

9 trả về

javascript

typeof NaN; // => 'number'

typeof window.NaN; // => 'number'

typeof Number.NaN; // => 'number'

1. Điều kiện

javascript

const someNumber = NaN;

if (someNumber !== someNumber) {

console.log('Is NaN');

} else {

console.log('Is Not NaN');

}

// logs "Is NaN"

1 là

javascript

1 * undefined; // => NaN

7 và

javascript

const someNumber = NaN;

if (someNumber !== someNumber) {

console.log('Is NaN');

} else {

console.log('Is Not NaN');

}

// logs "Is NaN"

3 được gán cho

javascript

const someNumber = NaN;

if (someNumber !== someNumber) {

console.log('Is NaN');

} else {

console.log('Is Not NaN');

}

// logs "Is NaN"

4

3. 2 không được xác định là toán hạng

javascript

typeof NaN; // => 'number'

typeof window.NaN; // => 'number'

typeof Number.NaN; // => 'number'

8 được sử dụng làm toán hạng trong các phép toán số học như cộng, nhân, v.v. kết quả là

javascript

typeof NaN; // => 'number'

typeof window.NaN; // => 'number'

typeof Number.NaN; // => 'number'

1

Ví dụ

javascript

const infinite = Infinity;

const faulty = NaN;

typeof infinite; // => 'number'

typeof faulty; // => 'number'

2

javascript

const someNumber = NaN;

if (someNumber !== someNumber) {

console.log('Is NaN');

} else {

console.log('Is Not NaN');

}

// logs "Is NaN"

7 là một hàm truy cập thuộc tính

javascript

const someNumber = NaN;

if (someNumber !== someNumber) {

console.log('Is NaN');

} else {

console.log('Is Not NaN');

}

// logs "Is NaN"

8 từ một đối tượng kiểu. Khi gọi

javascript

const someNumber = NaN;

if (someNumber !== someNumber) {

console.log('Is NaN');

} else {

console.log('Is Not NaN');

}

// logs "Is NaN"

9, kết quả là

javascript

typeof NaN; // => 'number'

typeof window.NaN; // => 'number'

typeof Number.NaN; // => 'number'

8 (thuộc tính ______21_______8 không tồn tại trong đối tượng

javascript

isNaN(NaN); // => true

isNaN(1); // => false

Number.isNaN(NaN); // => true

Number.isNaN(1); // => false

2)

javascript

isNaN(NaN); // => true

isNaN(1); // => false

Number.isNaN(NaN); // => true

Number.isNaN(1); // => false

3 được đánh giá là

javascript

isNaN(NaN); // => true

isNaN(1); // => false

Number.isNaN(NaN); // => true

Number.isNaN(1); // => false

4, kết quả là

javascript

typeof NaN; // => 'number'

typeof window.NaN; // => 'number'

typeof Number.NaN; // => 'number'

1

"Không phải là số" được tạo khi một thuộc tính bị thiếu hoặc hàm trả về

javascript

typeof NaN; // => 'number'

typeof window.NaN; // => 'number'

typeof Number.NaN; // => 'number'

8 được sử dụng làm giá trị trong các phép toán số học

Đảm bảo rằng

javascript

typeof NaN; // => 'number'

typeof window.NaN; // => 'number'

typeof Number.NaN; // => 'number'

8 không đạt được các phép toán số học là một cách tiếp cận tốt để ngăn chặn

javascript

typeof NaN; // => 'number'

typeof window.NaN; // => 'number'

typeof Number.NaN; // => 'number'

1. Vui lòng kiểm tra "7 mẹo để xử lý không xác định trong JavaScript"

3. 3 NaN làm toán hạng

Giá trị

javascript

typeof NaN; // => 'number'

typeof window.NaN; // => 'number'

typeof Number.NaN; // => 'number'

1 cũng được tạo khi một toán hạng trong các phép toán số học là

javascript

typeof NaN; // => 'number'

typeof window.NaN; // => 'number'

typeof Number.NaN; // => 'number'

1

javascript

const infinite = Infinity;

const faulty = NaN;

typeof infinite; // => 'number'

typeof faulty; // => 'number'

3

javascript

typeof NaN; // => 'number'

typeof window.NaN; // => 'number'

typeof Number.NaN; // => 'number'

1 trải khắp các phép tính số học

javascript

const infinite = Infinity;

const faulty = NaN;

typeof infinite; // => 'number'

typeof faulty; // => 'number'

4

Các hoạt động trên biến

javascript

isNaN('Joker12'); // => true

Number.isNaN('Joker12'); // => false

2 bị hỏng sau khi giá trị

javascript

isNaN('Joker12'); // => true

Number.isNaN('Joker12'); // => false

3 (có

javascript

typeof NaN; // => 'number'

typeof window.NaN; // => 'number'

typeof Number.NaN; // => 'number'

1) được thêm vào

javascript

isNaN('Joker12'); // => true

Number.isNaN('Joker12'); // => false

2

3. 4 dạng không xác định

javascript

typeof NaN; // => 'number'

typeof window.NaN; // => 'number'

typeof Number.NaN; // => 'number'

1 giá trị được tạo khi các phép toán số học ở dạng không xác định

Sự phân chia của

javascript

isNaN('Joker12'); // => true

Number.isNaN('Joker12'); // => false

7 và

javascript

isNaN('Joker12'); // => true

Number.isNaN('Joker12'); // => false

8

javascript

const infinite = Infinity;

const faulty = NaN;

typeof infinite; // => 'number'

typeof faulty; // => 'number'

5

Phép nhân của

javascript

const someNumber = NaN;

if (someNumber !== someNumber) {

console.log('Is NaN');

} else {

console.log('Is Not NaN');

}

// logs "Is NaN"

4 và

javascript

typeof NaN; // => 'number'

typeof window.NaN; // => 'number'

typeof Number.NaN; // => 'number'

0

javascript

const infinite = Infinity;

const faulty = NaN;

typeof infinite; // => 'number'

typeof faulty; // => 'number'

6

Bổ sung vô số các dấu hiệu khác nhau

javascript

const infinite = Infinity;

const faulty = NaN;

typeof infinite; // => 'number'

typeof faulty; // => 'number'

7

3. 5 Đối số không hợp lệ của các hàm toán học

Căn bậc hai của số âm

javascript

const infinite = Infinity;

const faulty = NaN;

typeof infinite; // => 'number'

typeof faulty; // => 'number'

8

Hoặc logarit của một số âm

javascript

const infinite = Infinity;

const faulty = NaN;

typeof infinite; // => 'number'

typeof faulty; // => 'number'

9

4. Phần kết luận

Khái niệm "Không phải là số", được thể hiện bằng JavaScript với

javascript

typeof NaN; // => 'number'

typeof window.NaN; // => 'number'

typeof Number.NaN; // => 'number'

1, rất hữu ích để biểu thị các thao tác bị lỗi trên các số

javascript

typeof NaN; // => 'number'

typeof window.NaN; // => 'number'

typeof Number.NaN; // => 'number'

1 không bằng bất kỳ giá trị nào, ngay cả với chính

javascript

typeof NaN; // => 'number'

typeof window.NaN; // => 'number'

typeof Number.NaN; // => 'number'

1. Cách khuyến nghị để kiểm tra xem một biến có chứa

javascript

typeof NaN; // => 'number'

typeof window.NaN; // => 'number'

typeof Number.NaN; // => 'number'

1 hay không là sử dụng

javascript

const numberString = '1.5';

const number = parseFloat(numberString);

number; // => 1.5

5

Chuyển đổi chuỗi số thành số, khi không thành công, có thể dẫn đến "Không phải là số". Bạn nên kiểm tra xem

javascript

const numberString = '1.5';

const number = parseFloat(numberString);

number; // => 1.5

6,

javascript

const numberString = '1.5';

const number = parseFloat(numberString);

number; // => 1.5

7 hoặc

javascript

const numberString = '1.5';

const number = parseFloat(numberString);

number; // => 1.5

8 không trả lại

javascript

typeof NaN; // => 'number'

typeof window.NaN; // => 'number'

typeof Number.NaN; // => 'number'

1

javascript

typeof NaN; // => 'number'

typeof window.NaN; // => 'number'

typeof Number.NaN; // => 'number'

8 hoặc

javascript

typeof NaN; // => 'number'

typeof window.NaN; // => 'number'

typeof Number.NaN; // => 'number'

1 như một toán hạng trong các phép tính số học thường cho kết quả là

javascript

typeof NaN; // => 'number'

typeof window.NaN; // => 'number'

typeof Number.NaN; // => 'number'

1. Xử lý đúng

javascript

typeof NaN; // => 'number'

typeof window.NaN; // => 'number'

typeof Number.NaN; // => 'number'

8 (cung cấp giá trị mặc định cho các thuộc tính bị thiếu) là một cách tiếp cận tốt để ngăn chặn tình trạng này

Các dạng không xác định hoặc đối số không hợp lệ cho các hàm toán học cũng dẫn đến "Không phải là số". Nhưng những trường hợp này hiếm khi xảy ra

Đây là lời khuyên thực tế của tôi. "Có

javascript

typeof NaN; // => 'number'

typeof window.NaN; // => 'number'

typeof Number.NaN; // => 'number'

1? Tìm kiếm

javascript

typeof NaN; // => 'number'

typeof window.NaN; // => 'number'

typeof Number.NaN; // => 'number'

8. "

Thích bài viết?

đề xuất cải tiến

Bài đăng chất lượng vào hộp thư đến của bạn

Tôi thường xuyên xuất bản bài viết có chứa

  • Các khái niệm JavaScript quan trọng được giải thích bằng các từ đơn giản
  • Tổng quan về các tính năng JavaScript mới
  • Cách sử dụng TypeScript và cách gõ
  • Thiết kế phần mềm và thực hành mã hóa tốt

Đăng ký nhận bản tin của tôi để nhận chúng ngay trong hộp thư đến của bạn

Đặt mua

Tham gia cùng 6946 người đăng ký khác

Nhận NaN trong JavaScript

Nhận NaN trong JavaScript

Giới thiệu về Dmitri Pavlutin

Nhà văn và huấn luyện viên công nghệ. Thói quen hàng ngày của tôi bao gồm (nhưng không giới hạn) uống cà phê, viết mã, viết, huấn luyện, vượt qua sự nhàm chán 😉

Tại sao đầu ra của tôi là NaN trong JavaScript?

Trong JavaScript, NaN là viết tắt của Not a Number. Nó đại diện cho một giá trị không phải là số hợp lệ . Nó có thể được sử dụng để kiểm tra xem một số đã nhập là một số hợp lệ hay không phải là một số.

Làm cách nào để loại bỏ NaN trong JavaScript?

Giải pháp 1 . trong mã javascript mà bạn đang thêm, chỉ cần kiểm tra giá trị hộp văn bản và chỉ thực hiện phép cộng nếu nó không trống .

Tại sao tôi nhận được NaN?

Không phải là Số (NaN) được đưa ra khi cố gắng thực hiện các phép tính trên một phần của mảng không được khởi tạo . Ví dụ: nếu bạn có mảng sau. Nếu bạn thử và tìm giá trị trung bình của mảng này thì bạn sẽ thấy rằng kết quả sẽ là NaN. Điều này là do nó đang cố gắng tìm giá trị trung bình của không có gì.