Какая польза от метода window.btoa() в JavaScript?
Abdul Muizz
Grokking the Behavioral Interview
Получите бесплатный курс Educative по подготовке к собеседованию.
Метод window.btoa() в JavaScript
В этом ответе мы рассмотрим метод btoa()
объекта окна. Этот метод кодирует определенную строку по нашему выбору в base-64. Формат кодирования, который преобразует двоичные данные и сжимает их в формат строки ASCII.
Синтаксис
window.btoa(string_to_encode)
Здесь объект window
относится к открытому окну в нашем браузере.
Параметры
Этот метод принимает следующий параметр:
Возвращаемое значение
Возвращаемое значение этого метода представляет собой строку в формате base-64.
Примечание: Символы, используемые методом
window.btoa()
для кодирования конкретной строки: «A–Z», «a–z», «0–9». ,» «+», «/», » и «=». Возвращаемое значение метода всегда будет комбинацией последовательностей символов, перечисленных выше.
Код
В приведенном ниже примере кода используется этот метод и преобразуется строку по нашему выбору в формате base-64:
Объяснение
Строки 5–10: Этот код содержит тег
, который инкапсулирует содержимое нашей веб-страницы Некоторые из основных элементов HTML которые демонстрируют функциональность метода, следующие:Строка 8: Здесь у нас есть поле
Строка 9: Эта строка отображает HTML
onclick
и запускает методencode()
.
Строки 12–16: В этих строках наш метод
encode()
заключен в HTML 9. 0011 <скрипт> тегов. Тело метода состоит из следующих инструкций:Строка 13: Сначала мы извлекаем наше поле
document.getElementById()
. Затем атрибутvalue
поможет получить пользовательский ввод и назначить его переменнойinput
.Строка 14: Мы используем входную переменную
метод window.btoa()
. Возвращаемое значение, которое мы получаем, присваивается переменнойbase64
. Итак, теперьbase64
содержит нашу закодированную строку.Строка 15: Здесь мы используем метод Javascript
alert()
для отображения закодированной строки читателю. Пожалуйста, обратитесь к этому ответу, чтобы узнать больше о методе alert() .
Примечание: Чтобы узнать больше об атрибуте
значения
иDocument. getElementById ()
Метод, пожалуйста, см. Следующие ссылки:Атрибут значения
Document.getElementByID ()
. Muizz
Copyright © 2023 Educative, Inc. Все права защищены
Почему Javascript `atob()` и `btoa()` названы так?
спросил
Изменено 1 год, 1 месяц назад
Просмотрено 114 тысяч раз
В Javascript метод
window.atob()
декодирует строку base64 , а методwindow.btoa()
кодирует строкуТогда почему они не были названы как
base64Decode()
иbase64Encode()
?atob()
иbtoa()
не имеют смысла, потому что они вообще не семантические.Я хочу знать причину.
- JavaScript
6
Методы
atob()
иbtoa()
позволяют авторам преобразовывать содержимое в кодировку base64 и обратно.В этих API для мнемонических целей буква «b» может рассматриваться как означает «двоичный», а «а» — «ASCII». Однако на практике для прежде всего исторические причины, как вход, так и выход этих функции являются строками Unicode.
Откуда: http://www.w3.org/TR/html/webappapis.html#atob
13
Я знаю, что это старо, но недавно оно появилось в Твиттере, и я решил поделиться им, поскольку оно авторитетно.
Я:
@BrendanEich ты выбрал эти имена?
Он:
Старые имена Unix, трудно найти справочные страницы rn, но см. https://www.
unix.com/man-page/minix/1/btoa/ …. Имена перенесены из Unix в кодовую базу Netscape. Я отразил их в JS в большая спешка в 1995 (после десяти дней в мае, но скоро).На случай, если ссылка Minix не работает, вот содержание страницы руководства:
BTOA(1) BTOA(1) ИМЯ btoa - преобразование двоичного кода в ascii СИНТАКСИС btoa [-adhor] [входящий файл] [выходной файл] ПАРАМЕТРЫ -a Декодировать, а не кодировать файл -d Извлекает файл восстановления из файла диагностики -h Отображается меню справки с параметрами -o Устаревший алгоритм используется для обратной совместимости -r Восстановить поврежденный файл ПРИМЕРЫ btoa
a.btoa # Конвертировать a.out в ASCII btoa -a a.out # Отменить вышеописанное ОПИСАНИЕ Btoa — фильтр, преобразующий двоичный файл в ascii для передачи по телефону. линия. Если указаны два имени файла, первое используется для ввода, а второе — для вывода. btoa
означает двоичный кодв ASCII
.- например:
btoa("\x01\x02\xfe\xff") == "AQL+/w=="
Почему A SCII и b inary:
-
ASCII
(a
) является результатом кодированияbase64
. Безопасный текст , состоящий только из подмножества символов ascii (*), которые могут быть правильно представлены и переданы (например, тело электронного письма), -
двоичный файл
(b
) — это любой поток 0s и 1s (в javascript он должен быть представлен строковым типом).
(*) в
base64
они ограничены:A-Z
,a-z
,0-9
,+
,/
и = заполнение только в конце, https,/en.wikipedia.org/wiki/Base64
P.S. Должен признаться, я сам сначала был сбит с толку названиями и думал, что имена поменялись местами. я думал что
b
означает " b закодированная строка ase64" иa
вместо " a ny строка"2
Имена взяты из функции unix с аналогичной функциональностью, но вы уже можете прочитать это в других ответах здесь.
Вот моя мнемоника, чтобы запомнить какую использовать. На самом деле это не отвечает на сам вопрос, но может помочь людям понять, какую из функций использовать, не оставляя открытой вкладку для этого вопроса о переполнении стека в течение всего дня.
От Прекрасного до Ужасного
btoa
Возьмите что-то Прекрасное (т.е. красивый контент, который будет иметь смысл для вашего приложения: json, xml, текст, двоичные данные) и преобразуйте его во что-то Ужасное, что нельзя понять как есть (т.е. : закодировано).
От ужасного до прекрасного
atob
Полная противоположность btoa
Примечание
Некоторые могут сказать, что двоичный код не красив, но эй, это всего лишь уловка, чтобы помочь вам.
0
В данный момент я не могу найти источник, но общеизвестно, что в данном случае b означает «двоичный», а a — «ASCII».
Следовательно, функции на самом деле называются:
ASCII to Binary foratob()
, и Двоичный код в ASCII дляbtoa()
.Обратите внимание, что это реализация браузера, и она была оставлена для обеспечения совместимости с предыдущими версиями.