Số JavaScript tối đa
Giống như tất cả mọi thứ, JavaScript có giới hạn. Điều thú vị là có những giới hạn nhân tạo và sau đó là những giới hạn vật lý. Tôi sẽ khám phá những giới hạn này và cố gắng đẩy chúng đến giới hạn thực sự của chúng càng nhiều càng tốt Show Trong JavaScript, một Số được xác định bởi w3schools. com như
Điều này có ý nghĩa gì trong thực tế? . 7976931348623157e+308 hoặc sử dụng Số. GIÁ TRỊ TỐI ĐA; Mọi thứ bắt đầu trở nên kỳ lạ khi chúng ta cố gắng vượt qua điểm này. Tôi đã thử chạy đoạn mã dưới đây với mong đợi “Infinity”. Điều đó đã không xảy ra console.log(Number.MAX_VALUE+1);1.7976931348623157e+308 Điều này không phù hợp với tài liệu nêu rõ “Các số lớn hơn MAX_VALUE được biểu thị bằng vô cùng. ” lưu ý bên lề. Các thử nghiệm bên dưới được thực hiện bằng bảng điều khiển Google Chrome, vì vậy các trình thông dịch JS khác có thể mang lại kết quả khác Sau đó tôi đã tìm thấy một số tối đa không phải là Vô cực console.log(Number.MAX_VALUE+999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999);1.7976931348623157e+308 Nếu chúng ta thêm một "1" bổ sung như dưới đây console.log(Number.MAX_VALUE+9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999991);Infinity Bây giờ chúng ta có được Infinity. Vậy chuyện gì đã xảy ra? Bây giờ chúng ta hãy nói về Số. MAX_SAFE_INTEGER, được định nghĩa là
Một lời giải thích thực tế là bất cứ điều gì vượt quá giới hạn này, trình thông dịch JavaScript sẽ không còn chịu trách nhiệm cho các hoạt động Hãy nhìn vào đoạn mã dưới đây console.log(Number.MAX_SAFE_INTEGER); Từ các kết quả ở trên, chúng tôi thấy rằng chúng tôi chắc chắn có thể vượt lên trên “MAX_SAFE_INTEGER”, nhưng bất cứ điều gì chúng tôi muốn làm từ quan điểm thực tế đều không còn hiệu quả. Cả “a” và “b” đều được coi là bằng nhau, khi chúng ta biết chúng không Nếu chúng ta muốn vượt quá MAX_SAFE_INTEGER thì sao? JavaScript có một chức năng riêng được gọi là BigInt. Như tên của nó mô tả, nó xử lý các số lớn. Nó cũng cực kỳ đơn giản để kích hoạt. Thêm một chữ “n” vào cuối số và nó được chuyển đổi ngay lập tức const theBiggestInt = 9007199254740991n; Vậy tại sao không chỉ sử dụng “BigInt” mọi lúc? . Cuộc đuổi bắt? Điều này có nghĩa là nếu bạn chuyển đổi từ Số sang BigInt và ngược lại, bạn có thể mất độ chính xác. Ngoài ra còn có một khả năng tương thích mà chỉ các trình duyệt hiện đại mới hỗ trợ nó. Đây thực sự không phải là một vấn đề vì rất có thể nó chỉ cần thiết trong NodeJS, được hỗ trợ Bây giờ, chúng tôi sẽ thử MAX_VALUE mà chúng tôi đã gặp sự cố trước đó và bọc kết quả bên trong BigInt console.log(BigInt(Number.MAX_VALUE)); Ví dụ trên cho thấy những gì đang xảy ra. Khi chúng ta thêm nhiều hơn vào Số. MAX_VALUE, đơn giản là nó bị bỏ qua. Cả hai phương trình dẫn đến cùng một câu trả lời. Tại sao? Những gì chúng ta có thể làm bây giờ là sử dụng BigInt để vượt qua Số. GIÁ TRỊ TỐI ĐA. Lần này, chúng tôi sẽ sử dụng số gia so với giá trị BigInt của MAX_VALUE thay vì kết quả của MAX_VALUE. Bên dưới, chú ý vị trí của “+1n” trong dấu ngoặc so với đoạn mã trên console.log(BigInt(Number.MAX_VALUE)+1n); Như chúng ta có thể thấy ở trên, chữ số cuối cùng của chúng ta đã tăng lên thành “9” từ “8”. Vì vậy, BigInt hoạt động như mô tả. Hãy thử so sánh của chúng tôi let ab = BigInt(Number.MAX_VALUE); Như chúng ta có thể thấy, chúng ta có thể so sánh trên Số. Giới hạn MAX_VALUE, với nhược điểm là không thể sử dụng số thập phân BigInt có giới hạn, tuy nhiên không có bất kỳ “giới hạn cứng” nào hoặc thậm chí là bất kỳ “giới hạn mềm” nào. Các tài liệu không đề cập đến nó. Từ trải nghiệm của những người khác trên StackOverflow, có vẻ như các giới hạn được điều chỉnh bởi trình thông dịch JavaScript và cả giới hạn bộ nhớ của thiết bị. Ngoài ra còn có một hiệu suất đáng chú ý khi đạt được những con số thực sự lớn Tóm lại, có thể vượt quá giới hạn số gốc của JavaScript trong trường hợp hiếm hoi mà bạn cần. Một ví dụ sẽ là nếu bạn muốn tìm các số nguyên tố vì chúng không yêu cầu chữ số thập phân Trong hầu hết các trường hợp, mặc dù bạn sẽ không cần sử dụng BigInt, nhưng bạn sẽ muốn đảm bảo rằng mình không vượt quá giới hạn gốc bằng cách kiểm tra Số. MAX_SAFE_INTEGER nếu bạn biết mình có thể đạt đến con số đó Làm cách nào để có được số lượng tối đa trong JavaScript?The Toán. hàm max() trả về số lớn nhất trong số các số được cung cấp dưới dạng tham số đầu vào hoặc - Vô cùng nếu không có tham số.
Làm cách nào để sử dụng max() trong JS?Hàm max() của đối tượng Math chấp nhận nhiều số và trả về số lớn nhất trong số đó. . Nếu bạn chuyển một số cho hàm này, nó sẽ trả về cùng một số Và, nếu bạn không chuyển bất kỳ đối số nào, nó sẽ trả về vô cùng Làm cách nào để đặt giới hạn số trong JavaScript?Hằng số MAX_SAFE_INTEGER đại diện cho số nguyên an toàn tối đa trong JavaScript (253 – 1). Đối với số nguyên lớn hơn, hãy cân nhắc sử dụng BigInt.
Làm cách nào để lấy số tối đa trong mảng JavaScript?Các phần tử tối thiểu và tối đa trong một mảng có thể được tìm thấy bằng 2 cách tiếp cận. Phương pháp 1. Sử dụng toán học. tối thiểu () và Toán. max() Các phương thức min() và max() của đối tượng Math là các hàm tĩnh trả về phần tử nhỏ nhất và lớn nhất được truyền cho nó |