Bài 40: Đối tượng Number trong Javascript

Trong Javascript có một đối tượng thường được dùng để xử lý kiểu dữ liệu number đó là đối tượng Number, đối tượng này thường có hai dạng đó là số có dấu chấm động và số không có dấu chấm động.

Trong bài này chúng ta sẽ tìm hiểu cách khai báo Number và một số vấn đề liên quan đến đối tượng Number này.

1. Đối tượng Number trong Javascript

Trong Javascript có hai giá trị lưu trữ trong Number đó là số có dấu chấm động và không có dấu chấm động.

Ví dụ:

var x = 12; // không có dấu chấm động
var y = 12.5; // có dấu chấm động

Và nếu một số quá lớn thì bạn có thể dùng số mũ để biểu diễn.

Ví dụ:

var x = 123e5;    // 12300000
var y = 123e-5;   // 0.00123

Không giống với các ngôn ngữ lập trình khác, trong Javascript các số luôn luôn là 64 bít và kiểu float, vì vậy bạn không thể định nghĩa các kiểu dữ liệu như integer, short, long, ... hay nói cach khác trong Javascript khi làm việc với các chữ số thì chỉ có khái niệm Number

Ngoài ra bạn có thể biểu diễn giá trị của Number ở dạng nhị phân, thập phân, thập lục phân, ...

Ví dụ:

var x = 0xFF;             // x có giá trị bằng 255

Trong Javascript tất cả các dữ liệu liên quan đến những con số đều có kiểu dữ liệu là Number, nghĩa là bạn dùng hàm typeof thì sẽ có kết quả trả về là 'number'.

Ví dụ:

var x = 123;
var y = 1.23;

typeof 12;  // number
typeof x;   // number
typeof y;   // number

2. Xử lý Number trong Javascript

Phần này chúng ta tìm hiểu một số cách xử lý liên quan đến đối tượng Number và mình cũng đưa ra một số lưu ý để bạn không bị mắc lỗi khi sử dụng nó.

Chuyển Number sang String

Để chuyển một biến đang ở kiểu Number sang kiểu String thì ta sử dụng phương thức number.toString(type), hàm này có một tham số truyền vào là  type và đây chính là kiểu dữ liệu mà ban muốn chuyển về, mặc định sẽ là hệ thập phân (10). 

Sau đây là danh sách các hệ cơ số thông dụng:

  • Hệ nhị phân (2)
  • Hệ bát phân (8)
  • Hệ thập phân (10)
  • Hệ thập lục phân (8)

Ví dụ:

var myNumber = 128;
myNumber.toString(16);    // returns 80
myNumber.toString(8);      // returns 200
myNumber.toString(2);      // returns 10000000

Số Infinity

Infinity cũng là một kiểu dữ liệu Number và khi một biến có giá trị là Infinity thì tức là nó đã vượt mức lưu trữ cho phép nên theo mặc định nó sẽ chuyển về dạng đó. Vì nó cũng là một giá trị nên bạn có thể so sánh bình thường.

Ví dụ: Ta sử dụng vòng lặp while để lặp cho tới khi biến myNumber có giá trị là Infinity.

XEM DEMO

var myNumber = 2;
while (myNumber != Infinity) {
    myNumber = myNumber * myNumber;
}
document.write("Giá trị của myNumber là: " + myNumber);

NaN - Not a Number

Nếu bạn thực hiện một phép toán nào đó liên quan đến Number nhưng vi phạm quy tắc tính toán thì kết quả sẽ trả về một giá trị gọi là NaN (Not a Number). Ví dụ khi bạn thực hiện phép chia hai số nếu bạn cho mẫu số là một chuỗi String thì kết quả sẽ là NaN.

Ví dụ:

var x = 2/"freetuts.net"; // NaN

Tuy nhiên nếu mẫu số là một chuỗi Number thì kết quả nó vẫn hoạt động bình thường.

Ví dụ:

var x = 100 / "10"; // kết quả = 10

Để kiểm tra một biến nào đó có phải là NaN hay không thì chúng ta sử dụng hàm isNaN().

Ví dụ: XEM DEMO

var x = 2/"s";
if (isNaN(x)){
    document.write("NaN");
} 

Numbers - Objects

Ngoài cách tạo một biến Number thông thường đó là gán giá trị trực tiếp thì còn một cách khác đó là sử dụng đối tượng NumberTuy nhiên hai cách tạo này sẽ có kiểu dữ liệu khác nhau.

Ví dụ:

var x = 123; // number
var y = new Number(123); // object

3. Lời kết

Vấn đề quan trọng nhất của bài này là hiểu rõ bản chất của Number, cách kiểm tra một biến có phải là "Not a Number" hay không bằng cách sử dụng hàm isNaN(), khái niệm Infinity là gì?

Ngoài các cách sử dụng trên vẫn còn nhiều vấn đề nữa nhưng mình không thể trình bày hết được. Bài tiếp theo chúng ta tìm hiểu một số hàm xử Number trong Javascript.

Hãy để lại link bài viết gốc khi chia sẻ bài viết này, mình sẽ report DMCA với những website lấy nội dung mà không để nguồn hoặc copy bài với số lượng lớn.

Nguồn: freetuts.net

Profile photo of adminTheHalfHeart

TheHalfHeart

Có sở thích viết tuts nên đã từng tham gia viết ở một số diễn đàn, đến năm 2014 mới có điều kiện sáng lập ra freetuts.net. Sinh năm 90 và có 1 vợ 2 con, thích ca hát và lập trình.

ĐĂNG BÌNH LUẬN: Đăng câu hỏi trên Group Facebook để được hỗ trợ nhanh nhất.