Tìm hiểu đối tượng Number trong Javascript

Admin

Administrator
Thành viên BQT
#1
Tìm hiểu đố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ụ:
Mã:
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ụ:
Mã:
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 cách 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ụ:
Mã:
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ụ:
Mã:
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à bạn 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 (16)
Ví dụ:
Mã:
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.
Mã:
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ụ:
Mã:
var x = 2/"vnxf.vn"; // 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ụ:
Mã:
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ụ:
Mã:
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 Number. Tuy nhiên hai cách tạo này sẽ có kiểu dữ liệu khác nhau.

Ví dụ:
Mã:
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.

Chúc các bạn thành công.


Nguồn: freetuts.net​
 

Từ khóa phổ biến

You are using an out of date browser. It may not display this or other websites correctly.
You should upgrade or use an alternative browser.

Top