Thuộc tính (Properties) và Phương thức (Methods) của Number JavaScript
– Các phương thức Number giúp bạn làm việc với các số.
– Các giá trị nguyên thủy (primitive values) như 123, 3.14 không thể có các thuộc tính hoặc phương thức (vì chúng không phải là các đối tượng).
– Nhưng với JavaScript, các phương thức và thuộc tính cũng có sẵn cho các giá trị nguyên thủy, bởi vì JavaScript xử lý các giá trị nguyên thủy như các đối tượng khi thực thi các phương thức và các thuộc tính.
- Cách tạo một đối tượng Number
- Các thuộc tính của Number
- constructor
- prototype
- MAX_VALUE
- MIN_VALUE
- MAX_SAFE_INTEGER
- MIN_SAFE_INTEGER
- POSITIVE_INFINITY
- NEGATIVE_INFINITY
- EPSILON
- NaN
- Một số phương thức thường dùng
- toString()
- toExponential()
- toFixed()
- toPrecision()
- toLocaleString()
- valueOf()
- Phương thức JavaScript Global: Number()
- Phương thức JavaScript Global: parseInt()
- Phương thức JavaScript Global: parseFloat()
1. Cách tạo một đối tượng Number
Để tạo ra một đối tượng Number bạn có thể sử dụng cú pháp sau:
Syntax:
[code language=”javascript”]var objNum = new Number(2017);[/code]– Tuy nhiên, đừng bao giờ tạo số Number làm đối tượng (object). Nó làm chậm tốc độ thực thi và từ khóa new làm phức tạp code.
– Chi tiết xem thêm: Số Number có thể là Object.
2. Các thuộc tính của Number
No. | Phương thức | Mô tả |
1 | constructor | Trả về hàm tạo ra instance của đối tượng (object). Mặc định nó là đối tượng Number. |
2 | prototype | Cho phép bạn thêm các thuộc tính và phương thức cho bất kỳ đối tượng nào (Number, Boolean, String và Date,…). |
3 | MAX_VALUE | Trả về số lớn nhất có thể trong JavaScript: 1.7976931348623157e+308 |
4 | MIN_VALUE | Trả về số nhỏ nhất có thể trong JavaScript: 5e-324 |
5 | MAX_SAFE_INTEGER | Trả về số nguyên an toàn lớn nhất trong JavaScript: (253 - 1 ), tức là bằng 9007199254740991 |
6 | MIN_SAFE_INTEGER | Trả về số nguyên an toàn nhỏ nhất trong JavaScript: (-(253 - 1) ), tức là bằng -9007199254740991 |
7 | POSITIVE_INFINITY | Đại diện cho vô cực (Infinity ), returned on overflow. |
8 | NEGATIVE_INFINITY | Đại diện cho vô cực âm (-Infinity ), returned on overflow. |
9 | EPSILON | Biểu thị sự khác biệt giữa 1 và số dấu chấm động nhỏ nhất lớn hơn 1, sẽ bằng 2.220446049250313e-16 |
10 | NaN | Đại diện cho giá trị “Not-a-Number” |
2.1. Thuộc tính constructor
– Trong JavaScript, thuộc tính constructor trả về hàm tạo ra instance của đối tượng (object). Mặc định nó là đối tượng Number.
– Giá trị trả về là một tham chiếu đến hàm, không phải là tên của hàm. Cú pháp:
number.constructor
– Đối với các số (numbers) JavaScript, thuộc tính constructor trả về: function Number() { [native code] }
2.2. Thuộc tính prototype
– Thuộc tính prototype cho phép bạn thêm các thuộc tính và phương thức cho bất kỳ đối tượng nào (Number, Boolean, String và Date,…).
– Prototype là một thuộc tính global có sẵn với hầu như tất cả các đối tượng. Cú pháp:
object.prototype.name = value;
Ví dụ:
[code language=”javascript”]// Khai báo đối tượng và// khởi tạo giá trị cho thuộc tính có sẵn là "title", "author"
var myBook = new book("Learning JavaScript Design Patterns", "Addy Osmani");
// Thêm thuộc tính mới cho đối tượng bằng thuộc tính "prototype"
book.prototype.price = null;
myBook.price = 28.89;[/code]
Try it »
2.3. Giá trị của các thuộc tính hằng
Ví dụ:
[code language=”javascript”]var maxVal = Number.MAX_VALUE; // 1.7976931348623157e+308var minVal = Number.MIN_VALUE; // 5e-324
var maxSafeInt = Number.MAX_SAFE_INTEGER; // 9007199254740991
var minSafeInt = Number.MIN_SAFE_INTEGER; // -9007199254740991
var spsilon = Number.EPSILON; // 2.220446049250313e-16
var posInfinity = Number.POSITIVE_INFINITY; // Infinity
// POSITIVE_INFINITY được trả về khi tràn (overflow)
var x = 1 / 0; // Infinity
var negInfinity = Number.NEGATIVE_INFINITY; // -Infinity
// NEGATIVE_INFINITY được trả về khi tràn (overflow)
var y = -1 / 0; // -Infinity[/code]
Try it »
2.4. JavaScript NaN – Not a Number
Nội dung chi tiết: NaN – Không phải là số (Not a Number).
2.5. Thuộc tính của Number không thể được sử dụng trên các biến
– Các thuộc tính này chỉ có thể được truy cập dưới dạng Number.MAX_VALUE
.
– Sử dụng myNumber.MAX_VALUE, nếu myNumber là một biến, biểu thức hoặc giá trị thì undefined sẽ được trả về:
Ví dụ:
[code language=”javascript”]var x = 6;var y = x.MAX_VALUE; // y sẽ thành undefined[/code] Try it »
3. Một số phương thức thường dùng
3.1. Nhóm phương thức chuyển đổi số thành chuỗi
No. | Phương thức | Mô tả |
1 | toString() | Trả về giá trị chuỗi từ giá trị số. |
2 | toExponential() | Trả về một chuỗi được viết với số được làm tròn bằng cách sử dụng ký hiệu số mũ. |
3 | toFixed() | Trả về một chuỗi ký tự được làm tròn ra dấu thập phân của số chữ số được chỉ định. |
4 | toPrecision() | Trả về tổng số chữ số (bao gồm số chữ số ở bên trái và bên phải của dấu thập phân) với độ dài được chỉ định. |
5 | toLocaleString() | Trả về một chuỗi biểu thị số bằng cách sử dụng the locale of the environment. |
● Phương thức toString()
– Phương thức toString() trả về một số dưới dạng một chuỗi.
– Nó có thể được sử dụng với bất kỳ loại số (numbers), literals, biến (variables) hoặc biểu thức (expressions) nào.
Ví dụ:
[code language=”javascript”]var x = 123;x.toString()
(123).toString()
(100 + 23).toString()[/code] Try it »
● Phương thức toExponential()
– Phương thức toExponential() trả về một chuỗi được viết với số được làm tròn bằng cách sử dụng ký hiệu số mũ.
– Phương thức này có một tham cố xác định số ký tự sau dấu thập phân. Tham số là một optional (tức là có thể có hoặc không). Nếu bạn không chỉ định nó, JavaScript sẽ không làm tròn số.
Ví dụ:
[code language=”javascript”]var x = 9.656;x.toExponential(); // return 9.656e+0
x.toExponential(2); // return 9.66e+0
x.toExponential(4); // return 9.6560e+0
x.toExponential(6); // return 9.656000e+0[/code] Try it »
● Phương thức toFixed()
Phương thức toFixed() trả về một chuỗi ký tự được làm tròn ra dấu thập phân của số chữ số được chỉ định.
Ví dụ:
[code language=”javascript”]var x = 9.656;x.toFixed(0); // return 10
x.toFixed(2); // return 9.66
x.toFixed(4); // return 9.6560
x.toFixed(6); // return 9.656000[/code] Try it »
toFixed(2) thường được dùng khi format, làm việc với tiền (money).
● Phương thức toPrecision()
Phương thức toPrecision() trả về tổng số chữ số (bao gồm số chữ số ở bên trái và bên phải của dấu thập phân) với độ dài được chỉ định.
Ví dụ:
[code language=”javascript”]var x = 9.656;x.toPrecision(); // return 9.656
x.toPrecision(2); // return 9.7
x.toPrecision(4); // return 9.656
x.toPrecision(6); // return 9.65600[/code] Try it »
● Phương thức toLocaleString()
Phương thức toLocaleString() trả về một chuỗi biểu thị số bằng cách sử dụng the locale of the environment.
Ví dụ:
[code language=”javascript”]var x = 177.12345;x.toLocaleString(); // return 177.123[/code] Try it »
3.2. Phương thức valueOf()
– Phương thức valueOf() trả về một số dưới dạng một số.
Ví dụ:
[code language=”javascript”]var x = 123;x.valueOf(); // return 123 từ giá trị biến x
(123).valueOf(); // return 123 từ giá trị số (literal) 123
(100 + 23).valueOf(); // return 123 từ giá trị của biểu thức (expression) 100 + 23[/code] Try it »
– Trong JavaScript, một số number có thể là một giá trị nguyên thủy/primitive value (typeof = number) hoặc một đối tượng/object (typeof = object).
– Phương thức valueOf() được sử dụng trong JavaScript để chuyển đổi các đối tượng Number thành các giá trị nguyên thủy.
Tất cả các kiểu dữ liệu JavaScript đều có phương thức valueOf() và toString().
3.3. Nhóm phương thức chuyển đổi biến thành số
– Các phương thức này không phải là phương thức number, mà là các phương thức global của JavaScript.
– Các phương thức global của JavaScript có thể được sử dụng với tất cả các kiểu dữ liệu JavaScript.
– Đây là những phương thức phù hợp nhất khi làm việc với các numbers:
No. | Phương thức | Mô tả |
1 | Number() | Trả về một số, được chuyển đổi từ đối số của nó. |
2 | parseInt() | Parse đối số của nó và trả về một số nguyên (integer). |
3 | parseFloat() | Parse đối số của nó và trả về một số dấu phẩy động (floating point number). |
● Phương thức Number()
– Phương thức Number() có thể được sử dụng để chuyển đổi các biến JavaScript thành các số:
Ví dụ:
[code language=”javascript”]Number(true); // return 1Number(false); // return 0
Number("10"); // return 10
Number(" 10"); // return 10
Number("10 "); // return 10
Number(" 10 "); // return 10
Number("10.33"); // return 10.33
Number("10,33"); // return NaN
Number("10 33"); // return NaN
Number("John"); // return NaN[/code] Try it »
Nếu số không thể chuyển đổi, thì kết quả trả về sẽ là NaN (Không phải số).
– Phương thức Number() cũng có thể chuyển đổi ngày thành một số:
Ví dụ:
[code language=”javascript”]Number(new Date("2017-08-06")); // return 1501977600000[/code] Try it »Phương thức Number() ở trên trả về số milliseconds kể từ 1.1.1970.
● Phương thức parseInt()
– Phương thức parseInt() phân tích (parse) chuỗi và trả về một số nguyên. Được phép có các khoảng cách Space. Chỉ số đầu tiên được trả về:
Ví dụ:
[code language=”javascript”]parseInt("10"); // return 10parseInt("10.33"); // return 10
parseInt("10 20 30"); // return 10
parseInt("10 years"); // return 10
parseInt("years 10"); // return NaN[/code] Try it »
– Nếu số không thể chuyển đổi, thì kết quả trả về sẽ là NaN (Không phải số).
● Phương thức parseFloat()
– Phương thức parseFloat() phân tích (parse) chuỗi và trả về một số nguyên. Được phép có các khoảng cách Space. Chỉ số đầu tiên được trả về:
Ví dụ:
[code language=”javascript”]parseFloat("10"); // return 10parseFloat("10.33"); // return 10.33
parseFloat("10 20 30"); // return 10
parseFloat("10 years"); // return 10
parseFloat("years 10"); // return NaN [/code] Try it »
– Nếu số không thể chuyển đổi, thì kết quả trả về sẽ là NaN (Không phải số).
[…] Có thể bạn quan tâm: Thuộc tính và phương thức của đối tượng JavaScript Number. […]
[…] Trong bài viết Thuộc tính và phương thức của đối tượng JavaScript Number, bạn sẽ tìm thấy nhiều phương thức có thể được sử dụng để chuyển […]
[…] Xem thêm về hàm toPrecision() ở bài viết: Thuộc tính và phương thức của đối tượng JavaScript Number. […]