Bài 3: Kiểu dữ liệu Number trong Javascript
Trong Javascript, chúng ta sử dụng kiểu dữ liệu Number
để biểu diễn số.
Kiểu Number này là một giá trị double-precision 64-bit binary format IEEE 754, giống như double
trong Java hoặc C#. Điều này có nghĩa là nó có thể đại diện cho các giá trị phân số, nhưng có một số giới hạn đối với những gì nó có thể lưu trữ. Nó có thể làm tròn tới 17 chữ số sau dấu thập phân.
Giá trị lớn nhất có thể biểu diễn của Number là 1.8E308, nếu lớn hơn số này thì sẽ có giá trị là Infinity
.
Ta có thể hiểu số 30 trong mã JavaScript là một giá trị dấu phẩy động, không phải là số nguyên. Không có kiểu số nguyên riêng biệt nào trong Javascript. Number còn có thể biểu diễn dưới dạng literal forms như 0b101
, 0o13
, 0x0A
.
Nội dung của bài
Chi tiết
Literal syntax:
123 // one-hundred twenty-three
123.0 // same
123 === 123.0 // true
Function syntax:
Number('123') // returns the number 123
Number('123') === 123 // true
Number("batman") // NaN
Number(undefined) // NaN
Constructor:
Number()
: Creates a new Number
value.
Examples
Dưới đây là một vài thuộc tính nằm trong Number, ta có thể gán chúng cho một biến số và sử dụng.
Number properties:
const biggestNum = Number.MAX_VALUE
const smallestNum = Number.MIN_VALUE
const infiniteNum = Number.POSITIVE_INFINITY
const negInfiniteNum = Number.NEGATIVE_INFINITY
const notANum = Number.NaN
Integer range:
const biggestInt = Number.MAX_SAFE_INTEGER // (2**53 - 1) => 9007199254740991
const smallestInt = Number.MIN_SAFE_INTEGER // -(2**53 - 1) => -9007199254740991
Đối với các số nguyên nằm ngoài khoảng này, để biểu diễn chúng ta có thể sử dụng kiểu BigInt, hoặc lưu dưới dạng String, tuy nhiên, khi chuyển đổi từ dạng khác về Number có thể dẫn tới kết quả không như mong muốn.
Chuyển đổi chuỗi số và null thành số:
Number('123') // 123
Number('123') === 123 // true
Number('12.3') // 12.3
Number('12.00') // 12
Number('123e-1') // 12.3
Number('') // 0
Number(null) // 0
Number('0x11') // 17
Number('0b11') // 3
Number('0o11') // 9
Number('foo') // NaN
Number('100a') // NaN
Number('-Infinity') // -Infinity
Chuyển đổi ngày(lịch):
let d = new Date('December 25, 1999 03:24:00')
console.log(Number(d)) // 946067040000
Các hàm thường dùng:
Number.isNaN() // Determine whether the passed value is NaN
Number.isInteger() // Determine whether the passed value is an integer.
Number.parseFloat(string) // parse string to floating point number.
Hẹn gặp lại mọi người trong những bài viết tiếp theo.