JavaScript - Number và các hàm sử lý Number

by My Love

04/04/2019, 9:48 AM   |    04/04/2019, 10:05 AM   |    795   |    0

1. Đối tượng Number trong Javascript
      Trong javascript có hai kiểu khai báo biến thường được dùng là số nguyên và số thực như sau :
// Khai báo kiểu số nguyên
var a = 12;
// Khai báo kiểu số thực
var a = 12.5;
// hoặc
var a = new Number(12);
Hoặc nếu số lớn có thể viết dưới dạng số mũ :
// Khai báo kiểu số mũ
var a = 7e3; // 7000
var a = 7e-3; // 0.007

Ngoài ra cũng có thể khai báo dưới dạng số nhị phân, bát phân, thập phân... như sau :
// Khai báo kiểu thập lục phân
var a = 0x11; // 17

Giá trị Infinity
      Một biến sẽ có giá trị Infinity nếu nó vượt mức giá trị cho phép. Infinity cũng có kiểu dữ liệu là Number
Ví dụ : ta dùng while để lặp biến a cho đến khi nó có giá trị là Infinity
var a = 100;
while (a != Infinity) {
    a = a * a;
}
document.write("Giá trị của a là: " + a);
// Kết quả
Giá trị của a là: Infinity
Ngoài ra khi chia một số cho 0 cũng trả về kết quả là Infinity
var number = 100;
document.write(number/0);
// Kết quả in ra
Infinity
Giá trị NaN - Not a Number
      Giá trị NaN thường được sinh ra khi bạn sử dụng phép toán có chứa toán hạng không thuộc kiểu số, hoặc vi phạm quy tắc tính toán nào đó.
Ví dụ khi bạn thực hiện phép chia nhưng mẫu số lại là một chuỗi thì sẽ trả về kết quả NaN
var a = b/"Ronaldo"; // trả về NaN
2. Một số hàm sử lý Number
      Bạn có thể tham khảo một số hàm sử lý Number ở bảng sau :
Name Mô tả
number.toString() Chuyển kiểu số sang kiểu chuỗi ( string )
Number.isNaN() Kiểm tra giá trị truyền vào có phải là NaN(Not a Number) hay không. Tức là trả về true nếu không phải số, trả về false nếu là số
Number.isInteger() Kiểm tra giá trị truyền vào có phải là số nguyên hay không. Trả về true hoặc false
Number.isFinite() Kiểm tra giá trị truyền vào có phải là một số hữu hạn hay không. Trả về true hoặc false
number.toExponential() Chuyển đổi giá trị số truyền vào thành một số mũ
number.toFixed(n) Chuyển một số thành kiểu chuỗi và giữ lại n số thập phân truyền vào
number.toPrecision() Chuyển một số thành một số khác với độ dài xác định được truyền vào
number.parseInt() Chuyển một chuỗi hoặc một số thành dạng số nguyên. Nếu chuỗi truyền vào có kí tự đầu tiên là số thì chuyển được, ngược lại không chuyển được
number.parseFloat() Chuyển một chuỗi hoặc một số thành dạng số thực. Nếu chuỗi truyền vào có kí tự đầu tiên là số thì chuyển được, ngược lại không chuyển được
Number(n) Chuyển giá trị truyền vào thành kiểu số ( Number ). Nếu không chuyển được sẽ trả về NaN

3. Một số ví dụ :
Hàm toString()
      Hàm này chuyển một số sang dạng chuỗi với cú pháp :
number.toString(type)
Trong đó :
      number : là số muốn chuyển
      type : là kiểu dữ liệu muốn chuyển về, mặc định là kiểu thập phân. Một số kiểu :
                - 2 : Hệ nhị phân
                - 8 : Hệ bát phân
                - 10 : hệ thập phân
                - 16 : hệ thập lục phân
Ví dụ :
var number = 188;
// Hệ nhị phân
document.write(number.toString(2)); // Kết quả: 10111100
// Hệ bát phân
document.write(number.toString(8)); // Kết quả: 274
// Hệ thập phân
document.write(number.toString(10)); // Kết quả: 188
// Hệ thập lục phân
document.write(number.toString(16)); // Kết quả: bc
Hàm toFixed()
      Hàm này chuyển một số thành một chuỗi, giữ lại n chữ số thập phân do người dùng truyền vào
Ví dụ :
var number = 188.123456;           
// đang là kiểu số
document.write(typeof number); // number

// chuyển thành chuỗi và giữ lại 3 số sau dấu chấm
var newNumber = number.toFixed(3); 
document.write(newNumber); // 188.123
document.write(typeof newNumber); // string
Hàm toPrecision()
      Hàm này chuyển một số thành một số khác có độ dài xác định được truyền vào
Ví dụ :
var number = 188.123456;
document.write(number.toPrecision()); // Kết quả: 188.123456
document.write(number.toPrecision(2)); // Kết quả: 188.12
document.write(number.toPrecision(4)); // Kết quả: 188.1234
Hàm isNaN()
     Hàm này kiểm tra giá trị truyền vào có phải là NaN(Not a Number) hay không. Tức là trả về true nếu không phải số, trả về false nếu là số
Ví dụ :
var x = 188;
document.write(isNaN(x)); // Kết quả: false
var y = 'messi';
document.write(isNaN(y)); // Kết quả: true
 Hàm Number()
       Hàm này chuyển giá trị truyền vào thành kiểu số ( Number ). Nếu không chuyển được sẽ trả về NaN
Ví dụ :
var x = 188;
document.write(Number(x)); // Kết quả: 188
var y = 'messi';
document.write(Number(y)); // Kết quả: NaN
var z = true;
document.write(Number(z)); // Kết quả: 1
var a = false;
document.write(Number(a)); // Kết quả: 0
var b = '200';
document.write(Number(z)); // Kết quả: 200