Số có dấu gạch dưới javascript

Việc sử dụng dấu gạch dưới [_] trong JavaScript nhằm cải thiện khả năng đọc. Tính năng này được gọi là dấu tách số [đã được giới thiệu trong ES12]. Nó có thể được sử dụng như vậy

// ES12+
const million = 1_000_000;

console.log[million]; // 1000000
console.log[million === 1000000]; // true

Nếu bạn muốn tìm hiểu sâu về chủ đề này, thì hãy đọc bài viết về dấu phân cách số trong JavaScript là gì

Hy vọng bạn tìm thấy bài viết này hữu ích. Nó được xuất bản vào ngày 06 tháng 1 năm 2022. Hãy thể hiện tình yêu và sự ủng hộ của bạn bằng cách

Đây là một đề xuất, kết quả của sự hợp nhất giữa một bản nháp trước đó của chính nó và đề xuất-số-gạch dưới của Christophe Porteneuve, để mở rộng cái hiện có để cho phép một ký tự phân cách giữa các chữ số

Sự nhìn nhận

Đề xuất này hiện đang được ủng hộ bởi @samuelgoto, @rwaldron và @leobalter

Đề xuất này ban đầu được phát triển bởi @samuelgoto, @ajklein, @domenic, @rwaldron và @tdd

Động lực

Tính năng này cho phép các nhà phát triển làm cho chữ số của họ dễ đọc hơn bằng cách tạo sự phân tách trực quan giữa các nhóm chữ số. Mắt người khó phân tích nhanh các chữ số lớn, đặc biệt là khi có các chữ số lặp lại dài. Điều này làm suy yếu cả khả năng nhận được giá trị/thứ tự độ lớn chính xác

1000000000   // Is this a billion? a hundred millions? Ten millions?
101475938.38 // what scale is this? what power of 10?

nhưng cũng không thể truyền tải một số thông tin trường hợp sử dụng, chẳng hạn như số học điểm cố định sử dụng số nguyên. Chẳng hạn, các tính toán tài chính thường hoạt động trong các số học điểm cố định từ 4 đến 6 chữ số, nhưng ngay cả việc lưu trữ số tiền dưới dạng xu cũng không rõ ràng ngay lập tức nếu không có dấu phân cách bằng chữ

const FEE = 12300;
// is this 12,300? Or 123, because it's in cents?

const AMOUNT = 1234500;
// is this 1,234,500? Or cents, hence 12,345? Or financial, 4-fixed 123.45?

Sử dụng dấu gạch dưới [

1_000_000_000           // Ah, so a billion
101_475_938.38          // And this is hundreds of millions

let fee = 123_00;       // $123 [12300 cents, apparently]
let fee = 12_300;       // $12,300 [woah, that fee!]
let amount = 12345_00;  // 12,345 [1234500 cents, apparently]
let amount = 123_4500;  // 123.45 [4-fixed financial]
let amount = 1_234_500; // 1,234,500
4, U+005F] làm dấu phân cách giúp cải thiện khả năng đọc cho các chữ số, cả số nguyên và dấu phẩy động [và trong JS, dù sao thì tất cả đều là dấu phẩy động]

1_000_000_000           // Ah, so a billion
101_475_938.38          // And this is hundreds of millions

let fee = 123_00;       // $123 [12300 cents, apparently]
let fee = 12_300;       // $12,300 [woah, that fee!]
let amount = 12345_00;  // 12,345 [1234500 cents, apparently]
let amount = 123_4500;  // 123.45 [4-fixed financial]
let amount = 1_234_500; // 1,234,500

Ngoài ra, điều này cũng hoạt động trên các phần phân số và số mũ

0.000_001 // 1 millionth
1e10_000  // 10^10000 -- granted, far less useful / in-range...

ví dụ

[Các ví dụ sau đây cũng xuất hiện trong README. md của plugin chuyển đổi Babel cho đề xuất này. ]

Chữ số thông thường

let budget = 1_000_000_000_000;

// What is the value of `budget`? It's 1 trillion!
// 
// Let's confirm:
console.log[budget === 10 ** 12]; // true

chữ nhị phân

let nibbles = 0b1010_0001_1000_0101;

// Is bit 7 on? It sure is!
// 0b1010_0001_1000_0101
//             ^
//
// We can double check: 
console.log[!![nibbles & [1 

Chủ Đề