Số có dấu gạch dưới javascript
Việc sử dụng dấu gạch dưới ( Show
// 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ựcTí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,5004, 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ườnglet 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ânlet 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 đenDấ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,5005 // Valid 1_1n; 1_000n; 99999999_111111111_00000000n; // Invalid: SyntaxError! 1_n; 0_n; 1000000_n; 1_000_000_n; chữ bát phânMặ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ịchCú 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ách1_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,5004 đã đượ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
Xây dựng thông số kỹ thuậtconst 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ệuNghệ thuật nguyên thủy
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
|