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 << 7))); // true

chữ lục bát

________số 8_______

BigInt theo nghĩa đen

Dấu tách số cũng có sẵn trong chữ BigInt

// Verifying max signed 64 bit numbers:
const max = 2n ** (64n - 1n) - 1n;
console.log(max === 9_223_372_036_854_775_807n);

Nó cũng có thể được sử dụng tương tự như Số chữ

let budget = 1_000_000_000_000n;

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

Dấu tách số chỉ được phép giữa các chữ số của chữ BigInt và không được phép ngay trước hậu tố BigInt

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
5

// Valid
1_1n;
1_000n;
99999999_111111111_00000000n;

// Invalid: SyntaxError!
1_n;
0_n;
1000000_n;
1_000_000_n;

chữ bát phân

Mặc dù không có nhiều lợi ích, nhưng các dấu tách số có sẵn trong các sản phẩm Octal Literal thay vì thường có sẵn trong các sản phẩm không cũ. Nói cách khác, mục đích của tính năng là có sẵn rộng rãi trong các loại chữ số không cũ

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?
0

Sự chỉ rõ

Bạn có thể xem thiết kế thông số kỹ thuật trông như thế nào tại đây và phiên bản chi tiết hơn tại đây

Lý lịch

Cú pháp thay thế

Chiến lược rơmnman của chúng tôi là bắt đầu với một quy tắc hạn chế hơn (tôi. e. không cho phép cả hai thành ngữ) và nới lỏng nó sau nếu cần (trái ngược với việc bắt đầu rộng rãi hơn và lo lắng về khả năng tương thích ngược khi cố gắng thắt chặt nó sau này)

Ngoài ra, chúng tôi không thể tìm thấy bằng chứng tốt/thực tế trong đó (a) nhiều dấu gạch dưới liên tiếp hoặc (b) dấu gạch dưới trước/sau các số được sử dụng một cách hiệu quả, vì vậy chúng tôi đã chọn để phần bổ sung đó ở giai đoạn sau nếu cần/mong muốn

Tính cách

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 đã được đồng ý như là một phần của việc chấp nhận Giai đoạn 1. Các ví dụ sau hiển thị các dấu tách số khi chúng xuất hiện trong các ngôn ngữ lập trình khác

  • 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 (Java, Python, Perl, Ruby, Rust, Julia, Ada, C#)
  • 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
    8 (C++)

Xây dựng thông số kỹ thuật

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?
1

Người giới thiệu

Nghệ thuật nguyên thủy

  • Java7. nhiều, chỉ giữa các chữ số

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?
2

Lưu ý rằng hai ví dụ đầu tiên thực sự khó có thể đúng trong bất kỳ trường hợp nào. đánh đổi

Dấu tách số trong JavaScript là gì?

Dấu phân cách số trong javascript, bật dấu gạch dưới làm dấu phân cách trong chữ số để cải thiện khả năng đọc . Ví dụ. để chuỗi = 1_00_00; .

Làm cách nào để sử dụng dấu gạch dưới trong JavaScript?

Dấu gạch dưới ( _ ) chỉ là một ký tự hợp lệ đơn giản cho tên biến/hàm, nó không mang lại bất kỳ tính năng bổ sung nào. Tuy nhiên, quy ước tốt là sử dụng dấu gạch dưới để đánh dấu biến/hàm là riêng tư . Bạn có thể kiểm tra tiền tố gạch dưới cho tên thuộc tính và phương thức trong JavaScript để biết một số cuộc thảo luận trước đó.

Dấu gạch dưới có nghĩa là gì trong js?

js cung cấp các loại chức năng khác nhau và chức năng đó hữu ích cho các lập trình viên xây dựng bất kỳ loại ứng dụng nào mà không cần sự trợ giúp của các đối tượng tích hợp. Về cơ bản, Dấu gạch dưới là mã định danh trong JavaScript có nghĩa là chúng ta có thể xác định hoặc chúng ta có thể thực hiện bất kỳ loại hoạt động nào với sự trợ giúp của Dấu gạch dưới .

Làm thế nào để chữ số với dấu gạch dưới hoạt động trong Java?

Trong Java SE 7 trở lên, bất kỳ số lượng ký tự gạch dưới ( _ ) nào cũng có thể xuất hiện ở bất kỳ đâu giữa các chữ số trong một chữ số . Ví dụ: tính năng này cho phép bạn tách các nhóm chữ số theo chữ số, điều này có thể cải thiện khả năng đọc mã của bạn.