Kiểm tra số hữu tỉ trong JavaScript (Number.isFinite) | Laptrinhcanban.com

Kiểm tra số hữu tỉ trong JavaScript (Number.isFinite)

Hướng dẫn cách kiểm tra số hữu tỉ trong JavaScript. Bạn sẽ học được cách sử dụng phương thức Number.isFinite trong JavaScript để kiểm tra một số có phải là số hữu tỉ hay không sau bài học này.

Số hữu tỉ trong JavaScript

Theo wikipedia thì khái niệm số hữu tỉ như sau:

Trong toán học, số hữu tỉ là các số x có thể biểu diễn dưới dạng phân số a/b, trong đó a và b là các số nguyên với b là một số khác 0.

Ví dụ các số như 3/4, 1/2 là các số hữu tỉ.

Ngược lại, các số không thể biểu diễn dưới dạng phân số thì sẽ được coi là số vô tỉ. Ví dụ như số pi (π), căn 2 (√2) hoặc 0,1010010001000010000010000001… chẳng hạn đều là các số không thể biểu diễn dưới dạng phân số.

Kiểm tra số có phải là số hữu tỉ trong JavaScript | Number.isFinite

Number.isFinite là một phương thức trong Number Object, có tác dụng kiểm tra một đối tượng có phải thuộc kiểu số và giá trị của nó có phải là số hữu tỉ hay không. Ví dụ cụ thể, kết quả của phép chia một số cho số 0 trong JavaScript sẽ là một giá trị số hữu tỉ và thuộc kiểu số.

Để kiểm tra một đối tượng có phải là số hữu tỉ, về tổng quát thì chúng ta cần dùng tới hàm global isFinite(), còn trong Number Object, chúng ta sẽ dùng tới thuộc tính Number.isFinite để kiểm tra đối tượng đó.

Cách sử dụng phương thức Number.isFinite trong JavaScript để kiểm tra đối tượng có phải thuộc kiểu số và giá trị của nó có phải là số hữu tỉ như sau:

Number.isFinite(object);

Trong đó object là đối tượng cần kiểm tra có phải thuộc kiểu số và giá trị của nó có phải là số hữu tỉ hay không.

Phương thức Number.isFinite() sẽ kiểm tra đối tượng chỉ định có phải thuộc kiểu số, và có giá trị số hữu tỉ hay không. Nếu đối tượng đã cho không thuộc kiểu số, ví dụ như giá trị NaN、Infinity, hoặc chuỗi ký tự, lập tức giá trị false sẽ được trả về.

Ví dụ cụ thể sử dụng Number.isFinite() trong JavaScript:

Number.isFinite(12);        // true
Number.isFinite(12.345); // true
Number.isFinite(-1.225e-3); // true
Number.isFinite(0); // true

Các giá trị sau đây thuộc kiểu số và không phải số hữu tỉ nên giá trị false được trả về:

Number.isFinite(0 / 0); // false   

Number.isFinite(Math.PI); // false

Number.isFinite(Math.sqrt(2)); // false

Các giá trị sau đây không thuộc kiểu số nên giá trị false được trả về mà không cần tới việc xét số hữu tỉ nữa:

Number.isFinite('12');      // false
Number.isFinite('12.34'); // false
Number.isFinite(''); // false
Number.isFinite(' '); // false

Number.isFinite(Infinity); // false
Number.isFinite(undefined); // false
Number.isFinite(NaN); // false
Number.isFinite({}); // false
Number.isFinite('blabla'); // false
Number.isFinite([10, 20]); // false
Number.isFinite(true); // false
Number.isFinite(null); // false

Sự khác biệt giữa isFinite và Number.isFinite trong JavaScript

Hàm global isFinite() và phương thức thành viên Number.isFinite trong JavaScript đều được sử dụng để xác định giá trị của một đối tượng có phải là số hữu tỉ hay không. Tuy nhiên khi xử lý một đối tượng không thuộc kiểu số thì chúng sẽ hoạt động hoàn toàn khác nhau.

  1. Nếu đối tượng chỉ định không thuộc kiểu số, hàm isFinite() sẽ chuyển đối tượng đó về kiểu số, rồi sau đó mới kiểm tra đối tượng thuộc kiểu số đó có giá trị số hữu tỉ không.

  2. Ngược lại với phương thức Number.isFinite() thì nếu đối tượng chỉ định không thuộc kiểu số thì giá trị false sẽ ngay lập tức được trả về.

Hãy cùng xem sự khác biệt giữa isFinite và Number.isFinite qua các ví dụ sau:

isFinite(128);
// true
Number.isFinite(128);
// true

isFinite(Infinity);
// false
Number.isFinite(Infinity);
// false

isFinite('78');
// true
Number.isFinite('78');
// false

isFinite('');
// true
Number.isFinite('');
// false

isFinite(true);
// true
Number.isFinite(true);
// false

isFinite(null);
// true
Number.isFinite(null);
// false

isFinite([10]);
// true
Number.isFinite([10]);
// false

Có thể thấy rõ nếu chỉ định đối tượng là các số hữu tỉ hay vô tỉ thì kết quả của hai phương pháp này là giống nhau.Tuy nhiên cũng có những trường hợp mà có sự khác biệt về kết quả giữa isFinite và Number.isFinite.

Bởi vậy, nếu bạn muốn kiểm tra giá trị số hữu tỉ với đối tượng thuộc kiểu số, hãy dùng phương thức Number.isFinite để cho ra kết quả chính xác.

Tổng kết

Trên đây Kiyoshi đã hướng dẫn bạn về cách kiểm tra số có phải là số hữu tỉ trong JavaScript bằng Number.isFinite rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay nhé.

Hãy chia sẻ và cùng lan tỏa kiến thức lập trình Nhật Bản tại Việt Nam!

HOME>> >>

Profile
きよしです!笑

Tác giả : Kiyoshi (Chis Thanh)

Kiyoshi là một cựu du học sinh tại Nhật Bản. Sau khi tốt nghiệp đại học Toyama năm 2017, Kiyoshi hiện đang làm BrSE tại Tokyo, Nhật Bản.