Ghi mảng vào tệp nodejs

Có một Mô-đun tích hợp hoặc thư viện tích hợp trong NodeJs xử lý tất cả các thao tác viết được gọi là fs (Hệ thống tệp). Về cơ bản nó là một chương trình JavaScript (fs. js) nơi viết một hàm cho các thao tác viết. Nhập mô-đun fs vào chương trình và sử dụng các hàm để ghi văn bản vào tệp trong hệ thống. Hàm sau sẽ tạo một tệp mới với tên đã cho nếu không có, nếu không, nó sẽ ghi lại tệp xóa tất cả dữ liệu trước đó trong đó.  

Trong bài viết này, chúng tôi sẽ trả về một mảng các dòng từ một tệp được chỉ định bằng cách sử dụng nút. js. Mô-đun fs được sử dụng để xử lý hệ thống tệp trong nút. js và để đọc dữ liệu tệp, chúng tôi sử dụng fs. readFileSync() hoặc fs. phương thức readFile(). Ở đây chúng tôi sẽ sử dụng phương thức readFileSync để đọc tệp và chúng tôi sử dụng các bước bên dưới để trả về các dòng của tệp trong một mảng

Chúng ta có thể đọc một tệp văn bản và trả về nội dung của nó dưới dạng Mảng bằng cách sử dụng nút. js. Chúng ta có thể sử dụng nội dung mảng này để xử lý các dòng của nó hoặc chỉ để đọc. Chúng tôi có thể sử dụng mô-đun 'fs' để xử lý việc đọc tệp. các fs. readFile() và fs. phương thức readFileSync() được sử dụng để đọc tệp. Chúng tôi cũng có thể đọc các tệp văn bản lớn bằng phương pháp này

Ví dụ (Sử dụng readFileSync())

Tạo một tệp có tên – fileToArray. js và sao chép đoạn mã dưới đây. Sau khi tạo tệp, sử dụng lệnh sau để chạy mã này như trong ví dụ bên dưới –

Các đối tượng Buffer được sử dụng để biểu diễn một chuỗi byte có độ dài cố định. nhiều nút. API js hỗ trợ Buffer

Lớp Buffer là một lớp con của lớp Uint8Array của JavaScript và mở rộng nó bằng các phương thức bao gồm các trường hợp sử dụng bổ sung. Nút. API js chấp nhận các Uint8Array đơn giản ở bất cứ đâu mà các Buffer cũng được hỗ trợ

Mặc dù lớp Buffer có sẵn trong phạm vi toàn cầu, nhưng vẫn nên tham chiếu rõ ràng nó thông qua câu lệnh nhập hoặc yêu cầu

Bộ đệm và mã hóa ký tự#

Lịch sửPhiên bảnThay đổiv15. 7. 0, v14. 18. 0

Giới thiệu mã hóa base64url

v6. 4. 0

Giới thiệu latin1 như một bí danh cho Buffer0

v5. 0. 0

Đã xóa các mã hóa Buffer1 và Buffer2 không dùng nữa

Khi chuyển đổi giữa Buffer và chuỗi, mã hóa ký tự có thể được chỉ định. Nếu không chỉ định mã hóa ký tự, UTF-8 sẽ được sử dụng làm mặc định

Nút. bộ đệm js chấp nhận tất cả các biến thể trường hợp của chuỗi mã hóa mà chúng nhận được. Ví dụ: UTF-8 có thể được chỉ định là Buffer4, Buffer5 hoặc Buffer6

Mã hóa ký tự hiện được hỗ trợ bởi Node. js như sau

  • Buffer4 (bí danh. Buffer8). Các ký tự Unicode được mã hóa nhiều byte. Nhiều trang web và các định dạng tài liệu khác sử dụng UTF-8. Đây là mã hóa ký tự mặc định. Khi giải mã một Buffer thành một chuỗi không chỉ chứa dữ liệu UTF-8 hợp lệ, ký tự thay thế Unicode Buffer0 � sẽ được sử dụng để biểu thị các lỗi đó

  • Buffer1 (bí danh. Buffer2). Các ký tự Unicode được mã hóa nhiều byte. Không giống như Buffer4, mỗi ký tự trong chuỗi sẽ được mã hóa bằng 2 hoặc 4 byte. Nút. js chỉ hỗ trợ biến thể little-endian của UTF-16

  • Buffer4. Latin-1 là viết tắt của ISO-8859-1. Mã hóa ký tự này chỉ hỗ trợ các ký tự Unicode từ Buffer5 đến Buffer6. Mỗi ký tự được mã hóa bằng một byte đơn. Các ký tự không vừa với phạm vi đó sẽ bị cắt bớt và sẽ được ánh xạ tới các ký tự trong phạm vi đó

Chuyển đổi một Buffer thành một chuỗi bằng cách sử dụng một trong các cách trên được gọi là giải mã và chuyển đổi một chuỗi thành một Buffer được gọi là mã hóa

Nút. js cũng hỗ trợ mã hóa nhị phân thành văn bản sau. Đối với mã hóa nhị phân thành văn bản, quy ước đặt tên bị đảo ngược. Chuyển đổi một Buffer thành một chuỗi thường được gọi là mã hóa và chuyển đổi một chuỗi thành một Buffer là giải mã

  • Buffer1. mã hóa base64. Khi tạo một Buffer từ một chuỗi, mã hóa này cũng sẽ chấp nhận chính xác "Bảng chữ cái an toàn cho tên tệp và URL" như được chỉ định trong RFC 4648, Phần 5. Các ký tự khoảng trắng như dấu cách, tab và dòng mới có trong chuỗi được mã hóa base64 sẽ bị bỏ qua

  • Buffer3. mã hóa base64url như được chỉ định trong RFC 4648, Phần 5. Khi tạo một Buffer từ một chuỗi, mã hóa này cũng sẽ chấp nhận chính xác các chuỗi được mã hóa base64 thông thường. Khi mã hóa một Buffer thành một chuỗi, mã hóa này sẽ bỏ qua phần đệm

  • Buffer6. Mã hóa mỗi byte thành hai ký tự thập lục phân. Việc cắt bớt dữ liệu có thể xảy ra khi giải mã các chuỗi không chỉ bao gồm một số chẵn các ký tự thập lục phân. xem ví dụ bên dưới

Các mã hóa ký tự kế thừa sau đây cũng được hỗ trợ

  • Buffer7. Chỉ dành cho dữ liệu ASCII 7 bit. Khi mã hóa một chuỗi thành một Buffer, điều này tương đương với việc sử dụng Buffer4. Khi giải mã một Buffer thành một chuỗi, việc sử dụng mã hóa này sẽ bỏ đặt bit cao nhất của mỗi byte trước khi giải mã thành Buffer4. Nói chung, không có lý do gì để sử dụng mã hóa này, vì Buffer4 (hoặc, nếu dữ liệu được biết là luôn chỉ ở dạng ASCII, thì Buffer4) sẽ là lựa chọn tốt hơn khi mã hóa hoặc giải mã văn bản chỉ ở dạng ASCII. Nó chỉ được cung cấp cho khả năng tương thích kế thừa

  • Uint8Array4. Bí danh cho Buffer4. Xem chuỗi nhị phân để biết thêm thông tin cơ bản về chủ đề này. Tên của mã hóa này có thể rất dễ gây nhầm lẫn, vì tất cả các mã hóa được liệt kê ở đây đều chuyển đổi giữa chuỗi và dữ liệu nhị phân. Để chuyển đổi giữa chuỗi và Buffer, thông thường, Buffer4 là lựa chọn phù hợp

  • Uint8Array8, Uint8Array9. Bí danh của Buffer1. UCS-2 được dùng để chỉ một biến thể của UTF-16 không hỗ trợ các ký tự có điểm mã lớn hơn U+FFFF. trong nút. js, các điểm mã này luôn được hỗ trợ

Các trình duyệt Web hiện đại tuân theo Tiêu chuẩn mã hóa WHATWG có bí danh là cả Buffer4 và Uint8Array2 đến Uint8Array3. Điều này có nghĩa là trong khi làm điều gì đó như Uint8Array4, nếu bộ ký tự được trả về là một trong những bộ được liệt kê trong thông số kỹ thuật WHATWG thì có thể máy chủ đã thực sự trả về dữ liệu được mã hóa Uint8Array3 và việc sử dụng mã hóa Buffer4 có thể giải mã sai các ký tự

Bộ đệm và TypedArrays#

Lịch sửPhiên bảnChangesv3. 0. 0

Lớp Buffers bây giờ kế thừa từ Uint8Array

Phiên bản Buffer cũng là phiên bản JavaScript Uint8Array và Buffer1. Tất cả các phương thức của Buffer1 đều khả dụng trên các Buffer. Tuy nhiên, có sự không tương thích tinh tế giữa API Buffer và API Buffer1

Đặc biệt

Có hai cách để tạo phiên bản Buffer1 mới từ một Buffer

  • Truyền một Buffer cho một hàm tạo Buffer1 sẽ sao chép nội dung của các Buffer, được hiểu là một mảng các số nguyên chứ không phải là một chuỗi byte của loại mục tiêu

Có thể tạo một Buffer mới chia sẻ cùng bộ nhớ được phân bổ như một phiên bản Buffer1 bằng cách sử dụng thuộc tính Buffer4 của đối tượng Buffer1 theo cách tương tự. Buffer5 cư xử như Buffer6 trong ngữ cảnh này

Khi tạo một Buffer bằng cách sử dụng Buffer4 của Buffer1, chỉ có thể sử dụng một phần của base64url0 bên dưới bằng cách chuyển vào các tham số base64url1 và base64url2

Buffer5 và base64url4 có chữ ký và cách triển khai khác nhau. Cụ thể, các biến thể của Buffer1 chấp nhận đối số thứ hai là hàm ánh xạ được gọi trên mọi phần tử của mảng đã nhập

  • base64url6

Tuy nhiên, phương pháp Buffer5 không hỗ trợ sử dụng chức năng ánh xạ

Bộ đệm và lặp lại #

Phiên bản Buffer có thể được lặp lại bằng cách sử dụng cú pháp base64url9

Ngoài ra, các phương thức latin10, latin11 và latin12 có thể được sử dụng để tạo các trình vòng lặp

Lớp. latin13#

Lịch sửPhiên bảnThay đổiv18. 0. 0, v16. 17. 0

Không còn thử nghiệm

v15. 7. 0, v14. 18. 0

Đã thêm vào. v15. 7. 0, v14. 18. 0

Một latin13 đóng gói dữ liệu thô, không thay đổi có thể được chia sẻ an toàn trên nhiều luồng công nhân

latin15#

Lịch sửPhiên bảnThay đổiv16. 7. 0

Đã thêm tùy chọn latin16 tiêu chuẩn để thay thế kết thúc dòng và xóa tùy chọn latin17 không chuẩn

v15. 7. 0, v14. 18. 0

Đã thêm vào. v15. 7. 0, v14. 18. 0

Tạo một đối tượng latin13 mới chứa sự kết hợp của các nguồn đã cho

, , và các nguồn được sao chép vào 'Blob' và do đó có thể được sửa đổi một cách an toàn sau khi 'Blob' được tạo

Nguồn chuỗi được mã hóa dưới dạng chuỗi byte UTF-8 và được sao chép vào Blob. Các cặp thay thế không khớp trong mỗi phần chuỗi sẽ được thay thế bằng các ký tự thay thế Unicode U+FFFD

latin19#

Đã thêm vào. v15. 7. 0, v14. 18. 0

Trả về một lời hứa hoàn thành với một bản sao của dữ liệu latin13

Buffer01#

Đã thêm vào. v15. 7. 0, v14. 18. 0

Tổng kích thước của latin13 tính bằng byte

Buffer03#

Đã thêm vào. v15. 7. 0, v14. 18. 0

Tạo và trả về một latin13 mới chứa một tập hợp con của dữ liệu đối tượng latin13 này. Bản gốc latin13 không bị thay đổi

Buffer07#

Trả về một Buffer08 mới cho phép đọc nội dung của latin13

Buffer10#

Đã thêm vào. v15. 7. 0, v14. 18. 0

Trả về một lời hứa hoàn thành với nội dung của latin13 được giải mã dưới dạng chuỗi UTF-8

Buffer12#

Đã thêm vào. v15. 7. 0, v14. 18. 0

Loại nội dung của latin13

latin13 đối tượng và Buffer15#

Khi một đối tượng được tạo, nó có thể được gửi qua Buffer16 tới nhiều đích mà không cần chuyển hoặc sao chép dữ liệu ngay lập tức. Dữ liệu chứa trong latin13 chỉ được sao chép khi các phương thức Buffer18 hoặc Buffer19 được gọi

Lớp. Buffer#

Lớp Buffer là loại toàn cầu để xử lý trực tiếp dữ liệu nhị phân. Nó có thể được xây dựng theo nhiều cách khác nhau

phương pháp tĩnh. Buffer22#

Lịch sửPhiên bảnThay đổiv15. 0. 0

Ném ERR_INVALID_ARG_VALUE thay vì ERR_INVALID_OPT_VALUE cho các đối số đầu vào không hợp lệ

v10. 0. 0

Cố gắng lấp đầy bộ đệm có độ dài khác không bằng bộ đệm có độ dài bằng 0 sẽ kích hoạt một ngoại lệ được ném

v10. 0. 0

Việc chỉ định một chuỗi không hợp lệ cho Buffer23 sẽ kích hoạt một ngoại lệ được ném

v8. 9. 3

Việc chỉ định một chuỗi không hợp lệ cho Buffer23 hiện dẫn đến bộ đệm không được lấp đầy

v5. 10. 0

Đã thêm vào. v5. 10. 0

Phân bổ một Buffer mới của Buffer26 byte. Nếu Buffer23 là Buffer28, thì Buffer sẽ không được điền

Nếu Buffer26 lớn hơn Buffer31 hoặc nhỏ hơn 0, thì ném Buffer32

Nếu Buffer23 được chỉ định, thì Buffer được phân bổ sẽ được khởi tạo bằng cách gọi Buffer35

Nếu cả Buffer23 và latin17 đều được chỉ định, thì Buffer được phân bổ sẽ được khởi tạo bằng cách gọi Buffer39

Việc gọi Buffer40 có thể chậm hơn đáng kể so với cách gọi thay thế Buffer41 nhưng đảm bảo rằng nội dung đối tượng Buffer mới được tạo sẽ không bao giờ chứa dữ liệu nhạy cảm từ các lần phân bổ trước đó, bao gồm cả dữ liệu có thể chưa được phân bổ cho các Buffer

Một Buffer44 sẽ bị ném ra nếu Buffer26 không phải là một số

phương pháp tĩnh. Buffer46#

Lịch sửPhiên bảnThay đổiv15. 0. 0

Ném ERR_INVALID_ARG_VALUE thay vì ERR_INVALID_OPT_VALUE cho các đối số đầu vào không hợp lệ

v7. 0. 0

Chuyển một giá trị âm 126 bây giờ sẽ gây ra lỗi

v5. 10. 0

Đã thêm vào. v5. 10. 0

  • Buffer26 Độ dài mong muốn của Buffer mới

Phân bổ một Buffer mới của Buffer26 byte. Nếu Buffer26 lớn hơn Buffer31 hoặc nhỏ hơn 0, thì Buffer32 bị ném

Bộ nhớ cơ sở cho các phiên bản Buffer được tạo theo cách này không được khởi tạo. Nội dung của Buffer mới tạo không xác định và có thể chứa dữ liệu nhạy cảm. Thay vào đó, hãy sử dụng Buffer40 để khởi tạo phiên bản Buffer bằng số không

Một Buffer44 sẽ bị ném ra nếu Buffer26 không phải là một số

Mô-đun Buffer phân bổ trước một phiên bản Buffer nội bộ có kích thước Buffer63 được sử dụng làm nhóm để phân bổ nhanh các phiên bản Buffer mới được tạo bằng cách sử dụng Buffer41, Buffer66, Buffer67 và hàm tạo Buffer68 không dùng nữa chỉ khi Buffer26 nhỏ hơn hoặc bằng Buffer70

Việc sử dụng nhóm bộ nhớ trong được phân bổ trước này là điểm khác biệt chính giữa việc gọi Buffer72 so với. Buffer73. Cụ thể, Buffer72 sẽ không bao giờ sử dụng nhóm Buffer nội bộ, trong khi Buffer73 sẽ sử dụng nhóm Buffer nội bộ nếu Buffer26 nhỏ hơn hoặc bằng một nửa Buffer63. Sự khác biệt là tinh tế nhưng có thể quan trọng khi một ứng dụng yêu cầu hiệu suất bổ sung mà Buffer41 cung cấp

phương pháp tĩnh. Buffer81#

Lịch sửPhiên bảnThay đổiv15. 0. 0

Ném ERR_INVALID_ARG_VALUE thay vì ERR_INVALID_OPT_VALUE cho các đối số đầu vào không hợp lệ

v5. 12. 0

Đã thêm vào. v5. 12. 0

  • Buffer26 Độ dài mong muốn của Buffer mới

Phân bổ một Buffer mới của Buffer26 byte. Nếu Buffer26 lớn hơn Buffer31 hoặc nhỏ hơn 0, thì Buffer32 bị ném. Một Buffer có độ dài bằng 0 được tạo nếu Buffer26 bằng 0

Bộ nhớ cơ sở cho các phiên bản Buffer được tạo theo cách này không được khởi tạo. Nội dung của Buffer mới tạo không xác định và có thể chứa dữ liệu nhạy cảm. Sử dụng Buffer93 để khởi tạo các phiên bản Buffer như vậy bằng số không

Khi sử dụng Buffer41 để phân bổ các phiên bản Buffer mới, các phân bổ dưới 4 KiB được cắt từ một Buffer được phân bổ trước. Điều này cho phép các ứng dụng tránh được chi phí thu gom rác khi tạo nhiều phiên bản Buffer được phân bổ riêng lẻ. Cách tiếp cận này cải thiện cả hiệu suất và mức sử dụng bộ nhớ bằng cách loại bỏ nhu cầu theo dõi và dọn dẹp nhiều đối tượng base64url0 riêng lẻ

Tuy nhiên, trong trường hợp nhà phát triển có thể cần giữ lại một đoạn bộ nhớ nhỏ từ nhóm trong một khoảng thời gian không xác định, có thể thích hợp để tạo một phiên bản Buffer không được gộp chung bằng cách sử dụng Buffer01 và sau đó sao chép các bit có liên quan

Một Buffer44 sẽ bị ném ra nếu Buffer26 không phải là một số

phương pháp tĩnh. Buffer04#

Lịch sửPhiên bảnChangesv7. 0. 0

Truyền đầu vào không hợp lệ bây giờ sẽ gây ra lỗi

v5. 10. 0

Tham số Buffer05 bây giờ có thể là bất kỳ Buffer1, Buffer07 hoặc base64url0 nào

v0. 1. 90

Đã thêm vào. v0. 1. 90

Trả về độ dài byte của một chuỗi khi được mã hóa bằng cách sử dụng latin17. Điều này không giống với Buffer10, không tính đến mã hóa được sử dụng để chuyển đổi chuỗi thành byte

Đối với Buffer1, Buffer3 và Buffer6, hàm này giả định đầu vào hợp lệ. Đối với các chuỗi chứa dữ liệu không được mã hóa base64/hex (e. g. khoảng trắng), giá trị trả về có thể lớn hơn độ dài của Buffer được tạo từ chuỗi

Khi Buffer05 là một Buffer/Buffer07/Buffer1/base64url0/ Buffer20, độ dài byte được báo cáo bởi Buffer21 được trả về

phương pháp tĩnh. Buffer22#

Lịch sửPhiên bảnChangesv8. 0. 0

Các đối số bây giờ có thể là Uint8Arrays

v0. 11. 13

Đã thêm vào. v0. 11. 13

So sánh Buffer24 với Buffer25, thường nhằm mục đích sắp xếp các mảng của Buffer thể hiện. Điều này tương đương với việc gọi Buffer27

phương pháp tĩnh. Buffer28

Lịch sửPhiên bảnChangesv8. 0. 0

Các phần tử của Buffer29 bây giờ có thể là Uint8Arrays

v0. 7. 11

Đã thêm vào. v0. 7. 11

Trả về một Buffer mới là kết quả của việc nối tất cả các phiên bản Buffer trong Buffer29 lại với nhau

Nếu danh sách không có mục nào hoặc nếu Buffer34 là 0, thì một giá trị mới có độ dài bằng 0 sẽ được trả về

Nếu Buffer34 không được cung cấp, nó được tính từ các trường hợp Buffer trong Buffer29 bằng cách cộng độ dài của chúng

Nếu cung cấp Buffer34, nó sẽ bị ép thành một số nguyên không dấu. Nếu độ dài kết hợp của các Buffer trong Buffer29 vượt quá Buffer34, kết quả sẽ bị cắt bớt thành Buffer34

Buffer67 cũng có thể sử dụng nhóm Buffer nội bộ giống như Buffer41

phương pháp tĩnh. Buffer66#

Phân bổ một Buffer mới bằng cách sử dụng một Buffer49 byte trong phạm vi Buffer50 – Buffer51. Các mục nhập mảng bên ngoài phạm vi đó sẽ bị cắt bớt để phù hợp với nó

Một Buffer44 sẽ bị ném nếu Buffer49 không phải là một Buffer54 hoặc một loại khác phù hợp với các biến thể của Buffer5

Buffer66 và Buffer57 cũng có thể sử dụng nhóm Buffer nội bộ giống như Buffer41

phương pháp tĩnh. Buffer60#

Thao tác này tạo chế độ xem của base64url0 mà không cần sao chép bộ nhớ bên dưới. Ví dụ: khi được chuyển một tham chiếu đến thuộc tính Buffer4 của phiên bản Buffer1, thì ____ ______ mới được tạo sẽ chia sẻ cùng một bộ nhớ được phân bổ như _ _ _ ____ bên dưới của _ _ _ _ Buffer1

Các đối số base64url1 và base64url2 tùy chọn chỉ định phạm vi bộ nhớ trong Buffer69 sẽ được chia sẻ bởi Buffer

Một Buffer44 sẽ bị ném nếu Buffer69 không phải là một base64url0 hoặc một Buffer20 hoặc một loại khác thích hợp cho các biến thể của Buffer5

Điều quan trọng cần nhớ là một base64url0 sao lưu có thể bao phủ một phạm vi bộ nhớ vượt ra ngoài giới hạn của chế độ xem Buffer1. Một Buffer mới được tạo bằng cách sử dụng thuộc tính Buffer79 của một Buffer1 có thể mở rộng ra ngoài phạm vi của Buffer1

phương pháp tĩnh. Buffer82#

Sao chép dữ liệu Buffer79 đã qua vào phiên bản Buffer mới

Một Buffer44 sẽ bị ném nếu Buffer79 không phải là một Buffer hoặc một loại khác phù hợp với các biến thể của Buffer5

phương pháp tĩnh. Buffer89#

Đối với các đối tượng có hàm Buffer90 trả về giá trị không hoàn toàn bằng với Buffer91, trả về Buffer92

Đối với các đối tượng hỗ trợ Buffer93, trả về Buffer94

Một Buffer44 sẽ bị loại bỏ nếu Buffer91 không có các phương pháp được đề cập hoặc không thuộc loại khác phù hợp với các biến thể của Buffer5

phương pháp tĩnh. Buffer98#

  • Buffer05 Một chuỗi để mã hóa
  • latin17 Mã hóa của Buffer05. Mặc định. Buffer4

Tạo một Buffer mới chứa Buffer05. Tham số latin17 xác định mã hóa ký tự được sử dụng khi chuyển đổi Buffer05 thành byte

Một Buffer44 sẽ bị ném ra nếu Buffer05 không phải là một chuỗi hoặc một loại khác phù hợp với các biến thể của Buffer5

phương pháp tĩnh. Buffer10#

Trả về Buffer11 nếu Buffer12 là một Buffer, ngược lại là Buffer14

phương pháp tĩnh. Buffer15#

Trả về Buffer11 nếu latin17 là tên của mã hóa ký tự được hỗ trợ hoặc Buffer14 nếu không

Thuộc tính lớp. Buffer63#

Đây là kích thước (tính bằng byte) của các phiên bản Buffer nội bộ được phân bổ trước được sử dụng để tổng hợp. Giá trị này có thể được sửa đổi

Buffer21#

Toán tử chỉ mục Buffer22 có thể được sử dụng để lấy và đặt octet tại vị trí Buffer23 trong Buffer24. Các giá trị đề cập đến các byte riêng lẻ, vì vậy phạm vi giá trị pháp lý nằm trong khoảng từ Buffer25 đến Buffer26 (hệ thập lục phân) hoặc Buffer50 và Buffer51 (thập phân)

Toán tử này được kế thừa từ Uint8Array, vì vậy hành vi của nó khi truy cập ngoài giới hạn giống như Uint8Array. Nói cách khác, Buffer21 trả về Buffer28 khi Buffer23 âm hoặc lớn hơn hoặc bằng Buffer34 và Buffer35 không sửa đổi bộ đệm nếu Buffer23 âm hoặc Buffer37

Buffer38#

  • Đối tượng base64url0 bên dưới dựa vào đó đối tượng Buffer này được tạo

base64url0 này không đảm bảo tương ứng chính xác với Buffer ban đầu. Xem ghi chú trên Buffer43 để biết chi tiết

Buffer43#

  • base64url1 của đối tượng base64url0 nằm bên dưới của Buffer

Khi đặt base64url1 trong Buffer49 hoặc đôi khi khi phân bổ một Buffer nhỏ hơn Buffer63, bộ đệm không bắt đầu từ phần bù bằng 0 trên base64url0 nằm bên dưới

Điều này có thể gây ra sự cố khi truy cập trực tiếp vào base64url0 bên dưới bằng cách sử dụng Buffer38, vì các phần khác của base64url0 có thể không liên quan đến chính đối tượng Buffer

Một vấn đề phổ biến khi tạo một đối tượng Buffer1 chia sẻ bộ nhớ của nó với một Buffer là trong trường hợp này, người ta cần chỉ định chính xác base64url1

Buffer60#

Lịch sửPhiên bảnChangesv8. 0. 0

Tham số Buffer61 bây giờ có thể là một Uint8Array

v5. 11. 0

Các tham số bổ sung để chỉ định độ lệch hiện được hỗ trợ

v0. 11. 13

Đã thêm vào. v0. 11. 13

  • Buffer61. Một Buffer hoặc Uint8Array để so sánh với Buffer24
  • Buffer67 Độ lệch trong phạm vi Buffer61 để bắt đầu so sánh. Mặc định. Buffer50
  • Buffer70 Phần bù trong khoảng Buffer61 tại đó kết thúc so sánh (không bao gồm). Mặc định. Buffer72
  • Buffer73 Độ lệch trong phạm vi Buffer24 để bắt đầu so sánh. Mặc định. Buffer50
  • Buffer76 Phần bù trong khoảng Buffer24 tại đó kết thúc so sánh (không bao gồm). Mặc định. Buffer34
  • trả lại.

So sánh Buffer24 với Buffer61 và trả về một số cho biết liệu Buffer24 có trước, sau hay giống với Buffer61 theo thứ tự sắp xếp. So sánh dựa trên chuỗi byte thực tế trong mỗi Buffer

  • Buffer50 được trả về nếu Buffer61 giống với Buffer24
  • Buffer87 được trả về nếu Buffer61 phải đến trước Buffer24 khi được sắp xếp
  • Buffer90 được trả về nếu Buffer61 phải đến sau Buffer24 khi được sắp xếp

Các đối số tùy chọn Buffer67, Buffer70, Buffer73 và Buffer76 có thể được sử dụng để giới hạn so sánh với các phạm vi cụ thể trong phạm vi Buffer61 và Buffer24 tương ứng

Buffer99 bị ném nếu Uint8Array00, Uint8Array01, Uint8Array02 hoặc Uint8Array03

Uint8Array04#

Sao chép dữ liệu từ một vùng của Buffer24 sang một vùng trong Buffer61, ngay cả khi vùng nhớ của Buffer61 trùng với vùng của Buffer24

Uint8Array09 thực hiện cùng một thao tác và có sẵn cho tất cả TypedArrays, bao gồm cả Node. js Buffers, mặc dù nó nhận các đối số hàm khác nhau

latin12#

Tạo và trả về một iterator gồm các cặp Uint8Array12 từ nội dung của Buffer24

Uint8Array14#

Lịch sửPhiên bảnChangesv8. 0. 0

Các đối số bây giờ có thể là Uint8Arrays

v0. 11. 13

Đã thêm vào. v0. 11. 13

Trả về Buffer11 nếu cả Buffer24 và Uint8Array18 đều có cùng số byte, ngược lại là Buffer14. Tương đương với Uint8Array20

Uint8Array21#

Lịch sửPhiên bảnChangesv11. 0. 0

Ném Buffer99 thay vì Uint8Array23

v10. 0. 0

Các giá trị Uint8Array24 âm gây ra lỗi Uint8Array23

v10. 0. 0

Cố gắng lấp đầy bộ đệm có độ dài khác không bằng bộ đệm có độ dài bằng 0 sẽ kích hoạt một ngoại lệ được ném

v10. 0. 0

Việc chỉ định một chuỗi không hợp lệ cho Uint8Array26 sẽ kích hoạt một ngoại lệ được ném

v5. 7. 0

Tham số latin17 hiện được hỗ trợ

v0. 5. 0

Đã thêm vào. v0. 5. 0

Điền vào Buffer24 với Uint8Array26 được chỉ định. Nếu Uint8Array30 và Uint8Array24 không được cung cấp, toàn bộ Buffer24 sẽ được điền

Uint8Array26 bị ép buộc thành giá trị Uint8Array34 nếu nó không phải là chuỗi, Buffer hoặc số nguyên. Nếu số nguyên kết quả lớn hơn ________ 151 (thập phân), ________ 124 sẽ được điền bằng ________ 438

Nếu lần ghi cuối cùng của thao tác Uint8Array39 rơi vào một ký tự nhiều byte, thì chỉ các byte của ký tự đó khớp với Buffer24 mới được ghi

Nếu Uint8Array26 chứa các ký tự không hợp lệ, nó sẽ bị cắt bớt;

Uint8Array42#

Tương đương với Uint8Array43

Uint8Array44#

Lịch sửPhiên bảnChangesv8. 0. 0

Uint8Array26 bây giờ có thể là một Uint8Array

v5. 7. 0, v4. 4. 0

Khi latin17 đang được truyền, tham số base64url1 không còn cần thiết nữa

v1. 5. 0

Đã thêm vào. v1. 5. 0

  • Uint8Array26. . . Những gì để tìm kiếm
  • base64url1 Nơi bắt đầu tìm kiếm trong Buffer24. Nếu âm thì phần bù được tính từ cuối Buffer24. Mặc định. Buffer50
  • latin17 Nếu Uint8Array26 là một chuỗi, đây là mã hóa được sử dụng để xác định biểu diễn nhị phân của chuỗi sẽ được tìm kiếm trong Buffer24. Mặc định. Buffer4
  • trả lại. Chỉ số về lần xuất hiện đầu tiên của Uint8Array26 trong Buffer24 hoặc Buffer90 nếu Buffer24 không chứa Uint8Array26

Nếu Uint8Array26 là

  • một chuỗi, Uint8Array26 được giải thích theo mã hóa ký tự trong latin17
  • một Buffer hoặc Uint8Array, Uint8Array26 sẽ được sử dụng toàn bộ. Để so sánh một phần của Buffer, hãy sử dụng Uint8Array70
  • một số, Uint8Array26 sẽ được hiểu là một giá trị số nguyên 8 bit không dấu giữa Buffer50 và Buffer51

Nếu Uint8Array26 không phải là một chuỗi, số hoặc Buffer, phương thức này sẽ ném ra một Buffer44. Nếu Uint8Array26 là một số, nó sẽ bị ép buộc thành một giá trị byte hợp lệ, một số nguyên trong khoảng từ 0 đến 255

Nếu base64url1 không phải là một số, nó sẽ bị ép thành một số. Nếu kết quả của việc ép buộc là Uint8Array79 hoặc Buffer50, thì toàn bộ bộ đệm sẽ được tìm kiếm. Hành vi này phù hợp với Uint8Array81

Nếu Uint8Array26 là một chuỗi rỗng hoặc Buffer trống và base64url1 nhỏ hơn Buffer34, thì base64url1 sẽ được trả về. Nếu Uint8Array26 trống và base64url1 ít nhất là Buffer34, thì Buffer34 sẽ được trả về

latin11#

Tạo và trả về một trình vòng lặp gồm 124 khóa (chỉ số)

Uint8Array93#

Lịch sửPhiên bảnChangesv8. 0. 0

Uint8Array26 bây giờ có thể là một Uint8Array

v6. 0. 0

Đã thêm vào. v6. 0. 0

  • Uint8Array26. . . Những gì để tìm kiếm
  • base64url1 Nơi bắt đầu tìm kiếm trong Buffer24. Nếu âm thì phần bù được tính từ cuối Buffer24. Mặc định. Uint8Array00
  • latin17 Nếu Uint8Array26 là một chuỗi, đây là mã hóa được sử dụng để xác định biểu diễn nhị phân của chuỗi sẽ được tìm kiếm trong Buffer24. Mặc định. Buffer4
  • trả lại. Chỉ số về lần xuất hiện cuối cùng của Uint8Array26 trong Buffer24 hoặc Buffer90 nếu Buffer24 không chứa Uint8Array26

Giống hệt với Uint8Array10, ngoại trừ lần xuất hiện cuối cùng của Uint8Array26 được tìm thấy thay vì lần xuất hiện đầu tiên

Nếu Uint8Array26 không phải là một chuỗi, số hoặc Buffer, phương thức này sẽ ném ra một Buffer44. Nếu Uint8Array26 là một số, nó sẽ bị ép buộc thành một giá trị byte hợp lệ, một số nguyên trong khoảng từ 0 đến 255

Nếu base64url1 không phải là một số, nó sẽ bị ép thành một số. Bất kỳ đối số nào ép buộc đối với Uint8Array79, như Uint8Array18 hoặc Buffer28, sẽ tìm kiếm toàn bộ bộ đệm. Hành vi này phù hợp với Uint8Array20

Nếu Uint8Array26 là một chuỗi rỗng hoặc Buffer trống, thì base64url1 sẽ được trả về

Buffer34#

Trả về số byte trong Buffer24

Uint8Array26#

Thuộc tính Uint8Array26 là bí danh không dùng nữa cho Buffer38

Uint8Array29#

Đã thêm vào. v12. 0. 0, v10. 20. 0

  • Uint8Array30 Số byte cần bỏ qua trước khi bắt đầu đọc. Phải đáp ứng. Uint8Array31. Mặc định. Buffer50
  • trả lại.

Đọc một số nguyên 64-bit big-endian có chữ ký từ Buffer24 tại Uint8Array30 đã chỉ định

Các số nguyên được đọc từ một Buffer được hiểu là các giá trị có dấu bù của hai

Uint8Array36#

Đã thêm vào. v12. 0. 0, v10. 20. 0

  • Uint8Array30 Số byte cần bỏ qua trước khi bắt đầu đọc. Phải đáp ứng. Uint8Array31. Mặc định. Buffer50
  • trả lại.

Đọc một số nguyên 64-bit có dấu, little-endian từ Buffer24 tại Uint8Array30 đã chỉ định

Các số nguyên được đọc từ một Buffer được hiểu là các giá trị có dấu bù của hai

Uint8Array43#

Lịch sửPhiên bảnChangesv14. 10. 0, v12. 19. 0

Chức năng này cũng có sẵn dưới dạng Uint8Array44

v12. 0. 0, v10. 20. 0

Đã thêm vào. v12. 0. 0, v10. 20. 0

  • Uint8Array30 Số byte cần bỏ qua trước khi bắt đầu đọc. Phải đáp ứng. Uint8Array31. Mặc định. Buffer50
  • trả lại.

Đọc một số nguyên 64 bit không dấu, big-endian từ Buffer24 tại Uint8Array30 đã chỉ định

Chức năng này cũng có sẵn dưới bí danh Uint8Array50

Uint8Array51#

Lịch sửPhiên bảnChangesv14. 10. 0, v12. 19. 0

Chức năng này cũng có sẵn dưới dạng Uint8Array52

v12. 0. 0, v10. 20. 0

Đã thêm vào. v12. 0. 0, v10. 20. 0

  • Uint8Array30 Số byte cần bỏ qua trước khi bắt đầu đọc. Phải đáp ứng. Uint8Array31. Mặc định. Buffer50
  • trả lại.

Đọc một số nguyên 64-bit nhỏ, không dấu từ Buffer24 tại Uint8Array30 đã chỉ định

Chức năng này cũng có sẵn dưới bí danh Uint8Array58

Uint8Array59#

Lịch sửPhiên bảnThay đổiv10. 0. 0

Đã xóa Uint8Array60 và không còn sự ép buộc ngầm của phần bù đối với Uint8Array34 nữa

v0. 11. 15

Đã thêm vào. v0. 11. 15

  • Uint8Array30 Số byte cần bỏ qua trước khi bắt đầu đọc. Phải đáp ứng Uint8Array31. Mặc định. Buffer50
  • trả lại.

Đọc 64-bit, big-endian double từ Buffer24 tại Uint8Array30 được chỉ định

Uint8Array67#

Lịch sửPhiên bảnThay đổiv10. 0. 0

Đã xóa Uint8Array60 và không còn sự ép buộc ngầm của phần bù đối với Uint8Array34 nữa

v0. 11. 15

Đã thêm vào. v0. 11. 15

  • Uint8Array30 Số byte cần bỏ qua trước khi bắt đầu đọc. Phải đáp ứng Uint8Array31. Mặc định. Buffer50
  • trả lại.

Đọc 64-bit, little-endian double từ Buffer24 tại Uint8Array30 được chỉ định

Uint8Array75#

Lịch sửPhiên bảnThay đổiv10. 0. 0

Đã xóa Uint8Array60 và không còn sự ép buộc ngầm của phần bù đối với Uint8Array34 nữa

v0. 11. 15

Đã thêm vào. v0. 11. 15

  • Uint8Array30 Số byte cần bỏ qua trước khi bắt đầu đọc. Phải đáp ứng Uint8Array79. Mặc định. Buffer50
  • trả lại.

Đọc một float 32-bit, big-endian từ Buffer24 tại Uint8Array30 được chỉ định

Uint8Array83#

Lịch sửPhiên bảnThay đổiv10. 0. 0

Đã xóa Uint8Array60 và không còn sự ép buộc ngầm của phần bù đối với Uint8Array34 nữa

v0. 11. 15

Đã thêm vào. v0. 11. 15

  • Uint8Array30 Số byte cần bỏ qua trước khi bắt đầu đọc. Phải đáp ứng Uint8Array79. Mặc định. Buffer50
  • trả lại.

Đọc một float 32-bit, little-endian từ Buffer24 tại Uint8Array30 được chỉ định

Uint8Array91#

Lịch sửPhiên bảnThay đổiv10. 0. 0

Đã xóa Uint8Array60 và không còn sự ép buộc ngầm của phần bù đối với Uint8Array34 nữa

v0. 5. 0

Đã thêm vào. v0. 5. 0

  • Uint8Array30 Số byte cần bỏ qua trước khi bắt đầu đọc. Phải đáp ứng Uint8Array95. Mặc định. Buffer50
  • trả lại.

Đọc số nguyên 8 bit có dấu từ Buffer24 tại Uint8Array30 đã chỉ định

Các số nguyên được đọc từ một Buffer được hiểu là các giá trị có dấu bù của hai

Buffer00#

Lịch sửPhiên bảnThay đổiv10. 0. 0

Đã xóa Uint8Array60 và không còn sự ép buộc ngầm của phần bù đối với Uint8Array34 nữa

v0. 5. 5

Đã thêm vào. v0. 5. 5

  • Uint8Array30 Số byte cần bỏ qua trước khi bắt đầu đọc. Phải đáp ứng Buffer04. Mặc định. Buffer50
  • trả lại.

Đọc một số nguyên 16-bit big-endian có chữ ký từ Buffer24 tại Uint8Array30 đã chỉ định

Các số nguyên được đọc từ một Buffer được hiểu là các giá trị có dấu bù của hai

Buffer09#

Lịch sửPhiên bảnThay đổiv10. 0. 0

Đã xóa Uint8Array60 và không còn sự ép buộc ngầm của phần bù đối với Uint8Array34 nữa

v0. 5. 5

Đã thêm vào. v0. 5. 5

  • Uint8Array30 Số byte cần bỏ qua trước khi bắt đầu đọc. Phải đáp ứng Buffer04. Mặc định. Buffer50
  • trả lại.

Đọc một số nguyên 16-bit có dấu, little-endian từ Buffer24 tại Uint8Array30 đã chỉ định

Các số nguyên được đọc từ một Buffer được hiểu là các giá trị có dấu bù của hai

Buffer18#

Lịch sửPhiên bảnThay đổiv10. 0. 0

Đã xóa Uint8Array60 và không còn sự ép buộc ngầm của phần bù đối với Uint8Array34 nữa

v0. 5. 5

Đã thêm vào. v0. 5. 5

  • Uint8Array30 Số byte cần bỏ qua trước khi bắt đầu đọc. Phải đáp ứng Uint8Array79. Mặc định. Buffer50
  • trả lại.

Đọc một số nguyên 32-bit big-endian có chữ ký từ Buffer24 tại Uint8Array30 đã chỉ định

Các số nguyên được đọc từ một Buffer được hiểu là các giá trị có dấu bù của hai

Buffer27#

Lịch sửPhiên bảnThay đổiv10. 0. 0

Đã xóa Uint8Array60 và không còn sự ép buộc ngầm của phần bù đối với Uint8Array34 nữa

v0. 5. 5

Đã thêm vào. v0. 5. 5

  • Uint8Array30 Số byte cần bỏ qua trước khi bắt đầu đọc. Phải đáp ứng Uint8Array79. Mặc định. Buffer50
  • trả lại.

Đọc một số nguyên 32-bit có dấu, little-endian từ Buffer24 tại Uint8Array30 đã chỉ định

Các số nguyên được đọc từ một Buffer được hiểu là các giá trị có dấu bù của hai

Buffer36#

Lịch sửPhiên bảnThay đổiv10. 0. 0

Đã xóa Uint8Array60 và không còn sự ép buộc ngầm của phần bù và Buffer38 thành Uint8Array34 nữa

v0. 11. 15

Đã thêm vào. v0. 11. 15

  • Uint8Array30 Số byte cần bỏ qua trước khi bắt đầu đọc. Phải đáp ứng Buffer41
  • Buffer38 Số byte cần đọc. Phải đáp ứng Buffer43
  • trả lại.

Đọc số byte của Buffer38 từ Buffer24 tại Uint8Array30 đã chỉ định và diễn giải kết quả dưới dạng giá trị có chữ ký bù hai phần lớn, hỗ trợ độ chính xác lên tới 48 bit

Buffer47#

Lịch sửPhiên bảnThay đổiv10. 0. 0

Đã xóa Uint8Array60 và không còn sự ép buộc ngầm của phần bù và Buffer38 thành Uint8Array34 nữa

v0. 11. 15

Đã thêm vào. v0. 11. 15

  • Uint8Array30 Số byte cần bỏ qua trước khi bắt đầu đọc. Phải đáp ứng Buffer41
  • Buffer38 Số byte cần đọc. Phải đáp ứng Buffer43
  • trả lại.

Đọc số byte của Buffer38 từ Buffer24 tại Uint8Array30 đã chỉ định và diễn giải kết quả dưới dạng giá trị có chữ ký bổ sung của hai phần cuối nhỏ hỗ trợ độ chính xác lên tới 48 bit

Buffer58#

Lịch sửPhiên bảnChangesv14. 9. 0, v12. 19. 0

Chức năng này cũng có sẵn dưới dạng Buffer59

v10. 0. 0

Đã xóa Uint8Array60 và không còn sự ép buộc ngầm của phần bù đối với Uint8Array34 nữa

v0. 5. 0

Đã thêm vào. v0. 5. 0

  • Uint8Array30 Số byte cần bỏ qua trước khi bắt đầu đọc. Phải đáp ứng Uint8Array95. Mặc định. Buffer50
  • trả lại.

Đọc một số nguyên 8 bit không dấu từ Buffer24 tại Uint8Array30 đã chỉ định

Chức năng này cũng có sẵn dưới bí danh Buffer67

Buffer68#

Lịch sửPhiên bảnChangesv14. 9. 0, v12. 19. 0

Chức năng này cũng có sẵn dưới dạng Buffer69

v10. 0. 0

Đã xóa Uint8Array60 và không còn sự ép buộc ngầm của phần bù đối với Uint8Array34 nữa

v0. 5. 5

Đã thêm vào. v0. 5. 5

  • Uint8Array30 Số byte cần bỏ qua trước khi bắt đầu đọc. Phải đáp ứng Buffer04. Mặc định. Buffer50
  • trả lại.

Đọc một số nguyên 16 bit không dấu, big-endian từ Buffer24 tại Uint8Array30 đã chỉ định

Chức năng này cũng có sẵn dưới bí danh Buffer77

Buffer78#

Lịch sửPhiên bảnChangesv14. 9. 0, v12. 19. 0

Chức năng này cũng có sẵn dưới dạng Buffer79

v10. 0. 0

Đã xóa Uint8Array60 và không còn sự ép buộc ngầm của phần bù đối với Uint8Array34 nữa

v0. 5. 5

Đã thêm vào. v0. 5. 5

  • Uint8Array30 Số byte cần bỏ qua trước khi bắt đầu đọc. Phải đáp ứng Buffer04. Mặc định. Buffer50
  • trả lại.

Đọc một số nguyên 16-bit nhỏ, không dấu từ Buffer24 tại Uint8Array30 đã chỉ định

Chức năng này cũng có sẵn dưới bí danh Buffer87

Buffer88#

Lịch sửPhiên bảnChangesv14. 9. 0, v12. 19. 0

Chức năng này cũng có sẵn dưới dạng Buffer89

v10. 0. 0

Đã xóa Uint8Array60 và không còn sự ép buộc ngầm của phần bù đối với Uint8Array34 nữa

v0. 5. 5

Đã thêm vào. v0. 5. 5

  • Uint8Array30 Số byte cần bỏ qua trước khi bắt đầu đọc. Phải đáp ứng Uint8Array79. Mặc định. Buffer50
  • trả lại.

Đọc một số nguyên 32 bit không dấu, big-endian từ Buffer24 tại Uint8Array30 đã chỉ định

Chức năng này cũng có sẵn dưới bí danh Buffer97

Buffer98#

Lịch sửPhiên bảnChangesv14. 9. 0, v12. 19. 0

Chức năng này cũng có sẵn dưới dạng Buffer99

v10. 0. 0

Đã xóa Uint8Array60 và không còn sự ép buộc ngầm của phần bù đối với Uint8Array34 nữa

v0. 5. 5

Đã thêm vào. v0. 5. 5

  • Uint8Array30 Số byte cần bỏ qua trước khi bắt đầu đọc. Phải đáp ứng Uint8Array79. Mặc định. Buffer50
  • trả lại.

Đọc một số nguyên 32-bit không dấu, little-endian từ Buffer24 tại Uint8Array30 đã chỉ định

Chức năng này cũng có sẵn dưới bí danh Buffer07

Buffer08#

Lịch sửPhiên bảnChangesv14. 9. 0, v12. 19. 0

Chức năng này cũng có sẵn dưới dạng Buffer09

v10. 0. 0

Đã xóa Uint8Array60 và không còn sự ép buộc ngầm của phần bù và Buffer38 thành Uint8Array34 nữa

v0. 11. 15

Đã thêm vào. v0. 11. 15

  • Uint8Array30 Số byte cần bỏ qua trước khi bắt đầu đọc. Phải đáp ứng Buffer41
  • Buffer38 Số byte cần đọc. Phải đáp ứng Buffer43
  • trả lại.

Đọc số byte Buffer38 từ Buffer24 tại Uint8Array30 đã chỉ định và diễn giải kết quả dưới dạng số nguyên lớn cuối không dấu hỗ trợ độ chính xác lên tới 48 bit

Chức năng này cũng có sẵn dưới bí danh Buffer20

Buffer21#

Lịch sửPhiên bảnChangesv14. 9. 0, v12. 19. 0

Chức năng này cũng có sẵn dưới dạng Buffer22

v10. 0. 0

Đã xóa Uint8Array60 và không còn sự ép buộc ngầm của phần bù và Buffer38 thành Uint8Array34 nữa

v0. 11. 15

Đã thêm vào. v0. 11. 15

  • Uint8Array30 Số byte cần bỏ qua trước khi bắt đầu đọc. Phải đáp ứng Buffer41
  • Buffer38 Số byte cần đọc. Phải đáp ứng Buffer43
  • trả lại.

Đọc số byte Buffer38 từ Buffer24 tại Uint8Array30 đã chỉ định và diễn giải kết quả dưới dạng số nguyên không dấu, số cuối nhỏ hỗ trợ độ chính xác lên tới 48 bit

Chức năng này cũng có sẵn dưới bí danh Buffer33

Buffer34#

Trả về một Buffer mới tham chiếu cùng bộ nhớ như ban đầu, nhưng được bù và cắt bởi các chỉ số Buffer36 và Uint8Array24

Chỉ định Uint8Array24 lớn hơn Buffer34 sẽ trả về kết quả tương tự như của Uint8Array24 bằng với Buffer34

Phương pháp này được kế thừa từ Buffer42

Modifying the new Buffer slice will modify the memory in the original Buffer because the allocated memory of the two objects overlap

Specifying negative indexes causes the slice to be generated relative to the end of Buffer24 rather than the beginning

Buffer46#

HistoryVersionChangesv17. 5. 0, v16. 15. 0

buf. slice() method has been deprecated

v7. 0. 0

All offsets are now coerced to integers before doing any calculations with them

v7. 1. 0, v6. 9. 2

Việc ép buộc các phần bù cho số nguyên hiện xử lý đúng các giá trị bên ngoài phạm vi số nguyên 32 bit

v0. 3. 0

Added in. v0. 3. 0

Trả về một Buffer mới tham chiếu cùng bộ nhớ như ban đầu, nhưng được bù và cắt bởi các chỉ số Buffer36 và Uint8Array24

Phương pháp này không tương thích với Buffer50, lớp cha của Buffer. Để sao chép lát cắt, hãy sử dụng Buffer50

Buffer53#

Interprets Buffer24 as an array of unsigned 16-bit integers and swaps the byte order in-place. Throws Buffer55 if Buffer34 is not a multiple of 2

Một cách sử dụng thuận tiện của Buffer53 là thực hiện chuyển đổi nhanh tại chỗ giữa UTF-16 little-endian và UTF-16 big-endian

Buffer58#

Giải thích Buffer24 dưới dạng một mảng các số nguyên 32 bit không dấu và hoán đổi thứ tự byte tại chỗ. Throws Buffer55 if Buffer34 is not a multiple of 4

Buffer62#

Giải thích Buffer24 dưới dạng một mảng các số 64 bit và hoán đổi thứ tự byte tại chỗ. Throws Buffer55 if Buffer34 is not a multiple of 8

Buffer66#

Trả về một biểu diễn JSON của Buffer24. Buffer68 ngầm gọi hàm này khi xâu chuỗi một thể hiện Buffer

Buffer5 chấp nhận các đối tượng ở định dạng được trả về từ phương thức này. In particular, Buffer71 works like Buffer72

Buffer73#

  • latin17 The character encoding to use. Mặc định. Buffer4
  • Buffer36 The byte offset to start decoding at. Default. Buffer50
  • Uint8Array24 The byte offset to stop decoding at (not inclusive). Default. Buffer34
  • trả lại.

Giải mã Buffer24 thành một chuỗi theo mã hóa ký tự được chỉ định trong latin17. Buffer36 and Uint8Array24 may be passed to decode only a subset of Buffer24

If latin17 is Buffer4 and a byte sequence in the input is not valid UTF-8, then each invalid byte is replaced with the replacement character Buffer0

The maximum length of a string instance (in UTF-16 code units) is available as Buffer88

latin10#

Tạo và trả về một iterator cho giá trị Buffer24 (byte). Hàm này được gọi tự động khi sử dụng Buffer trong câu lệnh base64url9

Buffer93#

  • Buffer05 Chuỗi để ghi vào Buffer24
  • Uint8Array30 Number of bytes to skip before starting to write Buffer05. Default. Buffer50
  • base64url2 Số byte tối đa để ghi (byte được ghi sẽ không vượt quá base64url00). Default. base64url00
  • latin17 The character encoding of Buffer05. Mặc định. Buffer4
  • Returns. Number of bytes written

Viết Buffer05 đến Buffer24 tại Uint8Array30 theo mã hóa ký tự trong latin17. The base64url2 parameter is the number of bytes to write. Nếu Buffer24 không chứa đủ khoảng trống để chứa toàn bộ chuỗi, thì chỉ một phần của Buffer05 sẽ được ghi. Tuy nhiên, các ký tự được mã hóa một phần sẽ không được ghi

base64url12#

Đã thêm vào. v12. 0. 0, v10. 20. 0

  • Uint8Array26 Số được viết cho Buffer24
  • Uint8Array30 Số byte cần bỏ qua trước khi bắt đầu ghi. Must satisfy. Uint8Array31. Default. Buffer50
  • trả lại. Uint8Array30 cộng với số byte được ghi

Writes Uint8Array26 to Buffer24 at the specified Uint8Array30 as big-endian

Uint8Array26 is interpreted and written as a two's complement signed integer

base64url23#

Đã thêm vào. v12. 0. 0, v10. 20. 0

  • Uint8Array26 Số được viết cho Buffer24
  • Uint8Array30 Số byte cần bỏ qua trước khi bắt đầu ghi. Must satisfy. Uint8Array31. Default. Buffer50
  • trả lại. Uint8Array30 cộng với số byte được ghi

Viết Uint8Array26 thành Buffer24 tại Uint8Array30 được chỉ định dưới dạng little-endian

Uint8Array26 is interpreted and written as a two's complement signed integer

base64url34#

Lịch sửPhiên bảnChangesv14. 10. 0, v12. 19. 0

This function is also available as base64url35

v12. 0. 0, v10. 20. 0

Đã thêm vào. v12. 0. 0, v10. 20. 0

  • Uint8Array26 Số được viết cho Buffer24
  • Uint8Array30 Số byte cần bỏ qua trước khi bắt đầu ghi. Must satisfy. Uint8Array31. Default. Buffer50
  • trả lại. Uint8Array30 cộng với số byte được ghi

Writes Uint8Array26 to Buffer24 at the specified Uint8Array30 as big-endian

Chức năng này cũng có sẵn dưới bí danh base64url45

base64url46#

Lịch sửPhiên bảnChangesv14. 10. 0, v12. 19. 0

This function is also available as base64url47

v12. 0. 0, v10. 20. 0

Đã thêm vào. v12. 0. 0, v10. 20. 0

  • Uint8Array26 Số được viết cho Buffer24
  • Uint8Array30 Số byte cần bỏ qua trước khi bắt đầu ghi. Must satisfy. Uint8Array31. Default. Buffer50
  • trả lại. Uint8Array30 cộng với số byte được ghi

Viết Uint8Array26 thành Buffer24 tại Uint8Array30 được chỉ định dưới dạng little-endian

Chức năng này cũng có sẵn dưới bí danh base64url57

base64url58#

Lịch sửPhiên bảnThay đổiv10. 0. 0

Đã xóa Uint8Array60 và không còn sự ép buộc ngầm của phần bù đối với Uint8Array34 nữa

v0. 11. 15

Đã thêm vào. v0. 11. 15

  • Uint8Array26 Số được viết cho Buffer24
  • Uint8Array30 Number of bytes to skip before starting to write. Phải đáp ứng Uint8Array31. Mặc định. Buffer50
  • trả lại. Uint8Array30 cộng với số byte được ghi

Viết Uint8Array26 đến Buffer24 tại Uint8Array30 được chỉ định dưới dạng big-endian. Uint8Array26 phải là một số JavaScript. Hành vi không được xác định khi Uint8Array26 là bất kỳ thứ gì khác ngoài số JavaScript

base64url72#

Lịch sửPhiên bảnThay đổiv10. 0. 0

Đã xóa Uint8Array60 và không còn sự ép buộc ngầm của phần bù đối với Uint8Array34 nữa

v0. 11. 15

Đã thêm vào. v0. 11. 15

  • Uint8Array26 Số được viết cho Buffer24
  • Uint8Array30 Number of bytes to skip before starting to write. Phải đáp ứng Uint8Array31. Mặc định. Buffer50
  • trả lại. Uint8Array30 cộng với số byte được ghi

Writes Uint8Array26 to Buffer24 at the specified Uint8Array30 as little-endian. The Uint8Array26 must be a JavaScript number. Behavior is undefined when Uint8Array26 is anything other than a JavaScript number

base64url86#

Lịch sửPhiên bảnThay đổiv10. 0. 0

Đã xóa Uint8Array60 và không còn sự ép buộc ngầm của phần bù đối với Uint8Array34 nữa

v0. 11. 15

Đã thêm vào. v0. 11. 15

  • Uint8Array26 Số được viết cho Buffer24
  • Uint8Array30 Number of bytes to skip before starting to write. Must satisfy Uint8Array79. Mặc định. Buffer50
  • trả lại. Uint8Array30 cộng với số byte được ghi

Viết Uint8Array26 đến Buffer24 tại Uint8Array30 được chỉ định dưới dạng big-endian. Hành vi không được xác định khi Uint8Array26 là bất kỳ thứ gì khác ngoài số JavaScript

base64url99#

Lịch sửPhiên bảnThay đổiv10. 0. 0

Đã xóa Uint8Array60 và không còn sự ép buộc ngầm của phần bù đối với Uint8Array34 nữa

v0. 11. 15

Đã thêm vào. v0. 11. 15

  • Uint8Array26 Số được viết cho Buffer24
  • Uint8Array30 Number of bytes to skip before starting to write. Must satisfy Uint8Array79. Mặc định. Buffer50
  • trả lại. Uint8Array30 cộng với số byte được ghi

Viết Uint8Array26 thành Buffer24 tại Uint8Array30 được chỉ định dưới dạng little-endian. Hành vi không được xác định khi Uint8Array26 là bất kỳ thứ gì khác ngoài số JavaScript

latin112#

Lịch sửPhiên bảnThay đổiv10. 0. 0

Đã xóa Uint8Array60 và không còn sự ép buộc ngầm của phần bù đối với Uint8Array34 nữa

v0. 5. 0

Đã thêm vào. v0. 5. 0

  • Uint8Array26 Số được viết cho Buffer24
  • Uint8Array30 Số byte cần bỏ qua trước khi bắt đầu ghi. Phải đáp ứng Uint8Array95. Default. Buffer50
  • trả lại. Uint8Array30 cộng với số byte được ghi

Writes Uint8Array26 to Buffer24 at the specified Uint8Array30. Uint8Array26 phải là số nguyên 8 bit có chữ ký hợp lệ. Hành vi không được xác định khi Uint8Array26 là bất kỳ thứ gì khác ngoài số nguyên 8 bit đã ký

Uint8Array26 is interpreted and written as a two's complement signed integer

latin127#

Lịch sửPhiên bảnThay đổiv10. 0. 0

Đã xóa Uint8Array60 và không còn sự ép buộc ngầm của phần bù đối với Uint8Array34 nữa

v0. 5. 5

Đã thêm vào. v0. 5. 5

  • Uint8Array26 Số được viết cho Buffer24
  • Uint8Array30 Số byte cần bỏ qua trước khi bắt đầu ghi. Phải đáp ứng Buffer04. Mặc định. Buffer50
  • trả lại. Uint8Array30 cộng với số byte được ghi

Viết Uint8Array26 đến Buffer24 tại Uint8Array30 được chỉ định dưới dạng big-endian. Uint8Array26 phải là số nguyên 16 bit có chữ ký hợp lệ. Hành vi không được xác định khi Uint8Array26 là bất kỳ thứ gì khác ngoài số nguyên 16 bit đã ký

Uint8Array26 được giải thích và viết dưới dạng số nguyên có dấu bù hai

latin142#

Lịch sửPhiên bảnThay đổiv10. 0. 0

Đã xóa Uint8Array60 và không còn sự ép buộc ngầm của phần bù đối với Uint8Array34 nữa

v0. 5. 5

Đã thêm vào. v0. 5. 5

  • Uint8Array26 Số được viết cho Buffer24
  • Uint8Array30 Số byte cần bỏ qua trước khi bắt đầu ghi. Phải đáp ứng Buffer04. Mặc định. Buffer50
  • trả lại. Uint8Array30 cộng với số byte được ghi

Viết Uint8Array26 thành Buffer24 tại Uint8Array30 được chỉ định dưới dạng little-endian. Uint8Array26 phải là số nguyên 16 bit có chữ ký hợp lệ. Hành vi không được xác định khi Uint8Array26 là bất kỳ thứ gì khác ngoài số nguyên 16 bit đã ký

Uint8Array26 được giải thích và viết dưới dạng số nguyên có dấu bù hai

latin157#

Lịch sửPhiên bảnThay đổiv10. 0. 0

Đã xóa Uint8Array60 và không còn sự ép buộc ngầm của phần bù đối với Uint8Array34 nữa

v0. 5. 5

Đã thêm vào. v0. 5. 5

  • Uint8Array26 Số được viết cho Buffer24
  • Uint8Array30 Number of bytes to skip before starting to write. Must satisfy Uint8Array79. Mặc định. Buffer50
  • trả lại. Uint8Array30 cộng với số byte được ghi

Viết Uint8Array26 đến Buffer24 tại Uint8Array30 được chỉ định dưới dạng big-endian. Uint8Array26 phải là số nguyên 32 bit có chữ ký hợp lệ. Hành vi không được xác định khi Uint8Array26 là bất kỳ thứ gì khác ngoài số nguyên 32 bit đã ký

Uint8Array26 được giải thích và viết dưới dạng số nguyên có dấu bù hai

latin172#

Lịch sửPhiên bảnThay đổiv10. 0. 0

Đã xóa Uint8Array60 và không còn sự ép buộc ngầm của phần bù đối với Uint8Array34 nữa

v0. 5. 5

Đã thêm vào. v0. 5. 5

  • Uint8Array26 Số được viết cho Buffer24
  • Uint8Array30 Number of bytes to skip before starting to write. Must satisfy Uint8Array79. Mặc định. Buffer50
  • trả lại. Uint8Array30 cộng với số byte được ghi

Viết Uint8Array26 thành Buffer24 tại Uint8Array30 được chỉ định dưới dạng little-endian. Uint8Array26 phải là số nguyên 32 bit có chữ ký hợp lệ. Hành vi không được xác định khi Uint8Array26 là bất kỳ thứ gì khác ngoài số nguyên 32 bit đã ký

Uint8Array26 được giải thích và viết dưới dạng số nguyên có dấu bù hai

latin187#

Lịch sửPhiên bảnThay đổiv10. 0. 0

Đã xóa Uint8Array60 và không còn sự ép buộc ngầm của phần bù và Buffer38 thành Uint8Array34 nữa

v0. 11. 15

Đã thêm vào. v0. 11. 15

  • Uint8Array26 Số được viết cho Buffer24
  • Uint8Array30 Số byte cần bỏ qua trước khi bắt đầu ghi. Phải đáp ứng Buffer41
  • Buffer38 Số byte cần ghi. Phải đáp ứng Buffer43
  • trả lại. Uint8Array30 cộng với số byte được ghi

Viết các byte Buffer38 của Uint8Array26 đến Buffer24 tại Uint8Array30 được chỉ định dưới dạng big-endian. Hỗ trợ độ chính xác lên tới 48 bit. Hành vi không được xác định khi Uint8Array26 là bất kỳ thứ gì khác ngoài số nguyên đã ký

Buffer003#

Lịch sửPhiên bảnThay đổiv10. 0. 0

Đã xóa Uint8Array60 và không còn sự ép buộc ngầm của phần bù và Buffer38 thành Uint8Array34 nữa

v0. 11. 15

Đã thêm vào. v0. 11. 15

  • Uint8Array26 Số được viết cho Buffer24
  • Uint8Array30 Số byte cần bỏ qua trước khi bắt đầu ghi. Phải đáp ứng Buffer41
  • Buffer38 Số byte cần ghi. Phải đáp ứng Buffer43
  • trả lại. Uint8Array30 cộng với số byte được ghi

Viết các byte Buffer38 của Uint8Array26 đến Buffer24 tại Uint8Array30 được chỉ định dưới dạng little-endian. Hỗ trợ độ chính xác lên tới 48 bit. Hành vi không được xác định khi Uint8Array26 là bất kỳ thứ gì khác ngoài số nguyên đã ký

Buffer019#

Lịch sửPhiên bảnChangesv14. 9. 0, v12. 19. 0

Chức năng này cũng có sẵn dưới dạng Buffer020

v10. 0. 0

Đã xóa Uint8Array60 và không còn sự ép buộc ngầm của phần bù đối với Uint8Array34 nữa

v0. 5. 0

Đã thêm vào. v0. 5. 0

  • Uint8Array26 Số được viết cho Buffer24
  • Uint8Array30 Số byte cần bỏ qua trước khi bắt đầu ghi. Phải đáp ứng Uint8Array95. Default. Buffer50
  • trả lại. Uint8Array30 cộng với số byte được ghi

Viết Uint8Array26 đến Buffer24 tại Uint8Array30 được chỉ định. Uint8Array26 phải là số nguyên 8 bit không dấu hợp lệ. Hành vi không được xác định khi Uint8Array26 là bất kỳ thứ gì khác ngoài số nguyên 8 bit không dấu

Chức năng này cũng có sẵn dưới bí danh Buffer034

Buffer035#

Lịch sửPhiên bảnChangesv14. 9. 0, v12. 19. 0

Chức năng này cũng có sẵn dưới dạng Buffer036

v10. 0. 0

Đã xóa Uint8Array60 và không còn sự ép buộc ngầm của phần bù đối với Uint8Array34 nữa

v0. 5. 5

Đã thêm vào. v0. 5. 5

  • Uint8Array26 Số được viết cho Buffer24
  • Uint8Array30 Số byte cần bỏ qua trước khi bắt đầu ghi. Phải đáp ứng Buffer04. Mặc định. Buffer50
  • trả lại. Uint8Array30 cộng với số byte được ghi

Viết Uint8Array26 đến Buffer24 tại Uint8Array30 được chỉ định dưới dạng big-endian. Uint8Array26 phải là số nguyên 16 bit không dấu hợp lệ. Hành vi không được xác định khi Uint8Array26 là bất kỳ thứ gì khác ngoài số nguyên 16 bit không dấu

Chức năng này cũng có sẵn dưới bí danh Buffer050

Buffer051#

Lịch sửPhiên bảnChangesv14. 9. 0, v12. 19. 0

Chức năng này cũng có sẵn dưới dạng Buffer052

v10. 0. 0

Đã xóa Uint8Array60 và không còn sự ép buộc ngầm của phần bù đối với Uint8Array34 nữa

v0. 5. 5

Đã thêm vào. v0. 5. 5

  • Uint8Array26 Số được viết cho Buffer24
  • Uint8Array30 Số byte cần bỏ qua trước khi bắt đầu ghi. Phải đáp ứng Buffer04. Mặc định. Buffer50
  • trả lại. Uint8Array30 cộng với số byte được ghi

Viết Uint8Array26 thành Buffer24 tại Uint8Array30 được chỉ định dưới dạng little-endian. Uint8Array26 phải là số nguyên 16 bit không dấu hợp lệ. Hành vi không được xác định khi Uint8Array26 là bất kỳ thứ gì khác ngoài số nguyên 16 bit không dấu

Chức năng này cũng có sẵn dưới bí danh Buffer066

Buffer067#

Lịch sửPhiên bảnChangesv14. 9. 0, v12. 19. 0

Chức năng này cũng có sẵn dưới dạng Buffer068

v10. 0. 0

Đã xóa Uint8Array60 và không còn sự ép buộc ngầm của phần bù đối với Uint8Array34 nữa

v0. 5. 5

Đã thêm vào. v0. 5. 5

  • Uint8Array26 Số được viết cho Buffer24
  • Uint8Array30 Number of bytes to skip before starting to write. Must satisfy Uint8Array79. Mặc định. Buffer50
  • trả lại. Uint8Array30 cộng với số byte được ghi

Viết Uint8Array26 đến Buffer24 tại Uint8Array30 được chỉ định dưới dạng big-endian. Uint8Array26 phải là số nguyên 32 bit không dấu hợp lệ. Hành vi không được xác định khi Uint8Array26 là bất kỳ thứ gì khác ngoài số nguyên 32 bit không dấu

Chức năng này cũng có sẵn dưới bí danh Buffer082

Buffer083#

Lịch sửPhiên bảnChangesv14. 9. 0, v12. 19. 0

Chức năng này cũng có sẵn dưới dạng Buffer084

v10. 0. 0

Đã xóa Uint8Array60 và không còn sự ép buộc ngầm của phần bù đối với Uint8Array34 nữa

v0. 5. 5

Đã thêm vào. v0. 5. 5

  • Uint8Array26 Số được viết cho Buffer24
  • Uint8Array30 Number of bytes to skip before starting to write. Must satisfy Uint8Array79. Mặc định. Buffer50
  • trả lại. Uint8Array30 cộng với số byte được ghi

Viết Uint8Array26 thành Buffer24 tại Uint8Array30 được chỉ định dưới dạng little-endian. Uint8Array26 phải là số nguyên 32 bit không dấu hợp lệ. Hành vi không được xác định khi Uint8Array26 là bất kỳ thứ gì khác ngoài số nguyên 32 bit không dấu

Chức năng này cũng có sẵn dưới bí danh Buffer098

Buffer099#

Lịch sửPhiên bảnChangesv14. 9. 0, v12. 19. 0

Chức năng này cũng có sẵn dưới dạng Buffer100

v10. 0. 0

Đã xóa Uint8Array60 và không còn sự ép buộc ngầm của phần bù và Buffer38 thành Uint8Array34 nữa

v0. 5. 5

Đã thêm vào. v0. 5. 5

  • Uint8Array26 Số được viết cho Buffer24
  • Uint8Array30 Số byte cần bỏ qua trước khi bắt đầu ghi. Phải đáp ứng Buffer41
  • Buffer38 Số byte cần ghi. Phải đáp ứng Buffer43
  • trả lại. Uint8Array30 cộng với số byte được ghi

Viết các byte Buffer38 của Uint8Array26 đến Buffer24 tại Uint8Array30 được chỉ định dưới dạng big-endian. Hỗ trợ độ chính xác lên tới 48 bit. Hành vi không được xác định khi Uint8Array26 là bất kỳ thứ gì khác ngoài số nguyên không dấu

Chức năng này cũng có sẵn dưới bí danh Buffer116

Buffer117#

Lịch sửPhiên bảnChangesv14. 9. 0, v12. 19. 0

Chức năng này cũng có sẵn dưới dạng Buffer118

v10. 0. 0

Đã xóa Uint8Array60 và không còn sự ép buộc ngầm của phần bù và Buffer38 thành Uint8Array34 nữa

v0. 5. 5

Đã thêm vào. v0. 5. 5

  • Uint8Array26 Số được viết cho Buffer24
  • Uint8Array30 Số byte cần bỏ qua trước khi bắt đầu ghi. Phải đáp ứng Buffer41
  • Buffer38 Số byte cần ghi. Phải đáp ứng Buffer43
  • trả lại. Uint8Array30 cộng với số byte được ghi

Viết các byte Buffer38 của Uint8Array26 đến Buffer24 tại Uint8Array30 được chỉ định dưới dạng little-endian. Hỗ trợ độ chính xác lên tới 48 bit. Hành vi không được xác định khi Uint8Array26 là bất kỳ thứ gì khác ngoài số nguyên không dấu

Chức năng này cũng có sẵn dưới bí danh Buffer134

Buffer135#

Lịch sửPhiên bảnThay đổiv10. 0. 0

Gọi hàm tạo này sẽ phát ra cảnh báo không dùng nữa khi chạy từ mã bên ngoài thư mục Buffer136

v7. 2. 1

Gọi hàm tạo này không còn phát ra cảnh báo không dùng nữa

v7. 0. 0

Việc gọi hàm tạo này sẽ phát ra cảnh báo không dùng nữa ngay bây giờ

v6. 0. 0

Không dùng nữa kể từ. v6. 0. 0

Xem Buffer66

Buffer138#

Lịch sửPhiên bảnThay đổiv10. 0. 0

Gọi hàm tạo này sẽ phát ra cảnh báo không dùng nữa khi chạy từ mã bên ngoài thư mục Buffer136

v7. 2. 1

Gọi hàm tạo này không còn phát ra cảnh báo không dùng nữa

v7. 0. 0

Việc gọi hàm tạo này sẽ phát ra cảnh báo không dùng nữa ngay bây giờ

v6. 0. 0

Các tham số base64url1 và base64url2 hiện được hỗ trợ

v6. 0. 0

Không dùng nữa kể từ. v6. 0. 0

v3. 0. 0

Đã thêm vào. v3. 0. 0

Xem Buffer60

Buffer143#

Lịch sửPhiên bảnThay đổiv10. 0. 0

Gọi hàm tạo này sẽ phát ra cảnh báo không dùng nữa khi chạy từ mã bên ngoài thư mục Buffer136

v7. 2. 1

Gọi hàm tạo này không còn phát ra cảnh báo không dùng nữa

v7. 0. 0

Việc gọi hàm tạo này sẽ phát ra cảnh báo không dùng nữa ngay bây giờ

v6. 0. 0

Không dùng nữa kể từ. v6. 0. 0

Xem Buffer82

Buffer68#

Lịch sửPhiên bảnThay đổiv10. 0. 0

Gọi hàm tạo này sẽ phát ra cảnh báo không dùng nữa khi chạy từ mã bên ngoài thư mục Buffer136

v8. 0. 0

Theo mặc định, Buffer68 sẽ trả về bộ nhớ không đầy

v7. 2. 1

Gọi hàm tạo này không còn phát ra cảnh báo không dùng nữa

v7. 0. 0

Việc gọi hàm tạo này sẽ phát ra cảnh báo không dùng nữa ngay bây giờ

v6. 0. 0

Không dùng nữa kể từ. v6. 0. 0

  • Buffer26 Độ dài mong muốn của Buffer mới

Xem Buffer40 và Buffer41. Biến thể của hàm tạo này tương đương với Buffer40

Buffer154#

Lịch sửPhiên bảnThay đổiv10. 0. 0

Gọi hàm tạo này sẽ phát ra cảnh báo không dùng nữa khi chạy từ mã bên ngoài thư mục Buffer136

v7. 2. 1

Gọi hàm tạo này không còn phát ra cảnh báo không dùng nữa

v7. 0. 0

Việc gọi hàm tạo này sẽ phát ra cảnh báo không dùng nữa ngay bây giờ

v6. 0. 0

Không dùng nữa kể từ. v6. 0. 0

  • Buffer05 Chuỗi để mã hóa
  • latin17 Mã hóa của Buffer05. Mặc định. Buffer4

Xem Buffer98

Lớp. Buffer161#

Một Buffer161 cung cấp thông tin về các tệp

Buffer163#

Buffer164#

Tên của Buffer161

Buffer166#

Ngày sửa đổi cuối cùng của Buffer161

Buffer168 API mô-đun#

Mặc dù, đối tượng Buffer có sẵn dưới dạng toàn cầu, nhưng có các API bổ sung liên quan đến Buffer chỉ khả dụng thông qua mô-đun Buffer168 được truy cập bằng cách sử dụng Buffer172

Buffer173#

Đã thêm vào. v15. 13. 0, v14. 17. 0

Sự ổn định. 3 - Di sản. Sử dụng Buffer174 để thay thế

  • Buffer175 Chuỗi đầu vào được mã hóa Base64

Giải mã chuỗi dữ liệu được mã hóa Base64 thành byte và mã hóa các byte đó thành chuỗi bằng Latin-1 (ISO-8859-1)

Buffer175 có thể là bất kỳ giá trị JavaScript nào có thể được ép thành một chuỗi

Chức năng này chỉ được cung cấp để tương thích với các API nền tảng web cũ và không bao giờ được sử dụng trong mã mới, vì chúng sử dụng các chuỗi để biểu thị dữ liệu nhị phân và có trước khi giới thiệu các mảng đã nhập trong JavaScript. Đối với mã đang chạy bằng Node. js, việc chuyển đổi giữa các chuỗi được mã hóa base64 và dữ liệu nhị phân phải được thực hiện bằng cách sử dụng Buffer177 và Buffer178

Buffer179#

Đã thêm vào. v15. 13. 0, v14. 17. 0

  • Buffer175 Một chuỗi ASCII (Latin1)

Giải mã chuỗi thành byte bằng Latin-1 (ISO-8859) và mã hóa các byte đó thành chuỗi bằng Base64

Buffer175 có thể là bất kỳ giá trị JavaScript nào có thể được ép thành một chuỗi

Chức năng này chỉ được cung cấp để tương thích với các API nền tảng web cũ và không bao giờ được sử dụng trong mã mới, vì chúng sử dụng các chuỗi để biểu thị dữ liệu nhị phân và có trước khi giới thiệu các mảng đã nhập trong JavaScript. Đối với mã đang chạy bằng Node. js, việc chuyển đổi giữa các chuỗi được mã hóa base64 và dữ liệu nhị phân phải được thực hiện bằng cách sử dụng Buffer177 và Buffer178

Buffer184#

Trả về số byte tối đa sẽ được trả về khi gọi Buffer185. Điều này có thể được ghi đè bởi mô-đun người dùng. Xem Buffer186 để biết thêm chi tiết về hành vi của Buffer185

Buffer188#

  • Kích thước lớn nhất được phép cho một phiên bản Buffer

Một bí danh cho Buffer31

Buffer191#

  • Độ dài lớn nhất được phép cho một phiên bản Buffer05

Bí danh cho Buffer88

Buffer194#

  • Buffer195 Một chuỗi URL Buffer196 được trả về bởi lệnh gọi trước tới Buffer197
  • trả lại.

Giải quyết một Buffer198 một đối tượng được liên kết đã đăng ký bằng cách gọi trước tới Buffer197

Buffer200#

Lịch sửPhiên bảnChangesv8. 0. 0

Tham số Buffer201 bây giờ có thể là một Uint8Array

v7. 1. 0

Đã thêm vào. v7. 1. 0

Mã hóa lại phiên bản Buffer hoặc Uint8Array đã cho từ mã hóa ký tự này sang mã hóa ký tự khác. Trả về một thể hiện Buffer mới

Ném nếu Buffer206 hoặc Buffer207 chỉ định mã hóa ký tự không hợp lệ hoặc nếu chuyển đổi từ Buffer206 sang Buffer207 không được phép

Mã hóa được hỗ trợ bởi Buffer210 là. Buffer7, Buffer4, Buffer1, Uint8Array8, Buffer4, và Uint8Array4

Quá trình chuyển mã sẽ sử dụng các ký tự thay thế nếu một chuỗi byte đã cho không thể được biểu diễn đầy đủ trong mã hóa đích. Ví dụ

Bởi vì ký hiệu Euro (Buffer217) không thể hiện được trong US-ASCII, nó được thay thế bằng Buffer218 trong Buffer được chuyển mã

Lớp. Buffer220#

Xem Buffer01. Đây chưa bao giờ là một lớp theo nghĩa hàm tạo luôn trả về một thể hiện Buffer, thay vì một thể hiện Buffer220

Buffer224#
  • Buffer26 Độ dài mong muốn của Buffer220 mới

Xem Buffer01

Hằng số đệm#

Buffer31#

Lịch sửPhiên bảnThay đổiv15. 0. 0

Giá trị được thay đổi thành 232 trên kiến ​​trúc 64-bit

v14. 0. 0

Giá trị được thay đổi từ 231 - 1 thành 232 - 1 trên kiến ​​trúc 64 bit

v8. 2. 0

Đã thêm vào. v8. 2. 0

  • Kích thước lớn nhất được phép cho một phiên bản Buffer

Trên kiến ​​trúc 32 bit, giá trị này hiện tại là 230 - 1 (khoảng 1 GiB)

Trên kiến ​​trúc 64 bit, giá trị này hiện là 232 (khoảng 4 GiB)

Nó phản ánh Buffer230 dưới mui xe

Giá trị này cũng có sẵn dưới dạng Buffer188

Buffer88#
  • Độ dài lớn nhất được phép cho một phiên bản Buffer05

Đại diện cho base64url2 lớn nhất mà một Buffer05 nguyên thủy có thể có, được tính theo đơn vị mã UTF-16

Giá trị này có thể phụ thuộc vào công cụ JS đang được sử dụng

Buffer5, Buffer40 và Buffer41#

Trong các phiên bản của Nút. js trước 6. 0. 0, các phiên bản Buffer được tạo bằng cách sử dụng hàm xây dựng Buffer, hàm này phân bổ giá trị trả về của Buffer theo cách khác nhau dựa trên các đối số được cung cấp

  • Truyền một số làm đối số đầu tiên cho Buffer242 (e. g. Buffer243) phân bổ một đối tượng Buffer mới có kích thước đã chỉ định. Trước nút. js 8. 0. 0, bộ nhớ được phân bổ cho các phiên bản Buffer đó không được khởi tạo và có thể chứa dữ liệu nhạy cảm. Các trường hợp Buffer như vậy phải được khởi tạo sau đó bằng cách sử dụng Buffer93 hoặc bằng cách ghi vào toàn bộ Buffer trước khi đọc dữ liệu từ Buffer. Mặc dù hành vi này được cố ý để cải thiện hiệu suất, nhưng kinh nghiệm phát triển đã chứng minh rằng cần có sự phân biệt rõ ràng hơn giữa việc tạo một Buffer nhanh nhưng không được khởi tạo với việc tạo một Buffer chậm hơn nhưng an toàn hơn. Kể từ nút. js 8. 0. 0, Buffer252 và Buffer253 trả về một Buffer với bộ nhớ khởi tạo
  • Truyền một chuỗi, mảng hoặc Buffer làm đối số đầu tiên sao chép dữ liệu của đối tượng đã truyền vào Buffer
  • Vượt qua một base64url0 hoặc một Buffer20 trả về một Buffer chia sẻ bộ nhớ được cấp phát với bộ đệm mảng đã cho

Vì hành vi của Buffer260 khác nhau tùy thuộc vào loại đối số đầu tiên, các vấn đề về bảo mật và độ tin cậy có thể vô tình được đưa vào ứng dụng khi xác thực đối số hoặc khởi tạo Buffer không được thực hiện

Ví dụ: nếu kẻ tấn công có thể khiến ứng dụng nhận một số trong đó chuỗi được mong đợi, thì ứng dụng có thể gọi Buffer262 thay vì Buffer263, dẫn đến việc cấp phát bộ đệm 100 byte thay vì cấp phát bộ đệm 3 byte có nội dung Buffer264. Điều này thường có thể thực hiện được khi sử dụng lệnh gọi API JSON. Vì JSON phân biệt giữa các loại số và chuỗi, nên nó cho phép đưa vào các số trong đó một ứng dụng được viết một cách ngây thơ không xác thực đầy đủ đầu vào của nó có thể mong đợi luôn nhận được một chuỗi. Trước nút. js 8. 0. 0, bộ đệm 100 byte có thể chứa dữ liệu trong bộ nhớ có sẵn tùy ý, do đó có thể được sử dụng để tiết lộ bí mật trong bộ nhớ cho kẻ tấn công từ xa. Kể từ nút. js 8. 0. 0, không thể xảy ra hiện tượng lộ bộ nhớ vì dữ liệu không được lấp đầy. Tuy nhiên, các cuộc tấn công khác vẫn có thể xảy ra, chẳng hạn như khiến máy chủ phân bổ bộ đệm rất lớn, dẫn đến suy giảm hiệu suất hoặc sự cố do cạn kiệt bộ nhớ

Để làm cho việc tạo các phiên bản Buffer trở nên đáng tin cậy hơn và ít bị lỗi hơn, các dạng khác nhau của hàm tạo Buffer260 đã không được dùng nữa và được thay thế bằng các phương thức Buffer5, Buffer40 và Buffer41 riêng biệt

Các nhà phát triển nên di chuyển tất cả các mục đích sử dụng hiện có của hàm tạo Buffer260 sang một trong các API mới này

Các phiên bản Buffer được trả về bởi Buffer41 và Buffer66 có thể được phân bổ khỏi nhóm bộ nhớ trong dùng chung nếu Buffer26 nhỏ hơn hoặc bằng một nửa Buffer63. Các trường hợp được trả về bởi Buffer01 không bao giờ sử dụng nhóm bộ nhớ trong được chia sẻ

Tùy chọn dòng lệnh Buffer277#

Nút. js có thể được bắt đầu bằng cách sử dụng tùy chọn dòng lệnh Buffer277 để làm cho tất cả các phiên bản Buffer mới được phân bổ thành 0 khi tạo theo mặc định. Nếu không có tùy chọn này, bộ đệm được tạo bằng Buffer41, Buffer01 và Buffer224 sẽ không được lấp đầy. Việc sử dụng cờ này có thể có tác động tiêu cực có thể đo lường được đối với hiệu suất. Chỉ sử dụng tùy chọn Buffer277 khi cần thiết để thực thi rằng các phiên bản Buffer mới được phân bổ không được chứa dữ liệu cũ có khả năng nhạy cảm

$ node --zero-fill-buffers > Buffer.allocUnsafe(5);

Điều gì làm cho Buffer41 và Buffer01 "không an toàn"?#

Khi gọi Buffer41 và Buffer01, phân đoạn bộ nhớ được cấp phát chưa được khởi tạo (nó không bị loại bỏ). Mặc dù thiết kế này giúp cấp phát bộ nhớ khá nhanh, nhưng phân đoạn bộ nhớ được cấp phát có thể chứa dữ liệu cũ có khả năng nhạy cảm. Sử dụng Buffer được tạo bởi Buffer41 mà không ghi đè hoàn toàn bộ nhớ có thể khiến dữ liệu cũ này bị rò rỉ khi bộ nhớ Buffer được đọc

Mặc dù có những lợi thế về hiệu suất rõ ràng khi sử dụng Buffer41, nhưng cần phải hết sức cẩn thận để tránh đưa các lỗ hổng bảo mật vào ứng dụng

Làm thế nào để viết mảng trong nút js?

Tạo đối tượng mảng . mảng var = []; . var mảng = mảng mới();typing the array object. var array = []; Option two is to create an Array object by instantiating the Array object. var array = new Array();

Làm cách nào để ghi đối tượng vào tệp trong nodejs?

Để ghi Đối tượng JSON vào tệp cục bộ, sau đây là hướng dẫn từng bước. .
Xâu chuỗi đối tượng JSON. Sử dụngJSON. stringify(jsonObject) để chuyển đổi Đối tượng JSON thành Chuỗi JSON
Viết đối tượng được xâu chuỗi vào tệp bằng fs. writeFile() chức năng của mô-đun Node FS

Làm cách nào để lưu một mảng trong js?

Có hai phương thức JSON có thể giúp chúng ta "lưu trữ mảng" trong localStorage. .
stringify() - Nó giúp chúng ta chuyển mảng thành chuỗi
parse() - Nó cho phép chúng ta phân tích cú pháp chuỗi và xây dựng một mảng JavaScript

Làm cách nào để biến mảng thành chuỗi trong JavaScript?

Mảng JavaScript toString() .

Chủ đề