![[微笑]](http://lf-web-assets.juejin.cn/obj/juejin-web/xitu_juejin_web/img/jj_emoji_1.7d9f699.png)
[js] 说说你对base64的理解,它的使用场景有哪些?
"Base64是一种将二进制数据转换为可打印字符的编码方式。它是一种将任意字节流转换为ASCII字符串的方法,常用于在网络传输或存储中处理非文本数据。
Base64使用64个字符来表示二进制数据,包括A-Z、a-z、0-9以及\"+\"和\"/\"两个特殊字符。它将每3个字节的数据编码为4个字符,如果最后剩余1或2个字节,会在编码后加上\"=\"填充。
Base64的使用场景有很多,下面列举几个常见的场景:
1. 图片、音频和视频的传输:在网络传输中,二进制的图片、音频和视频数据需要转换为Base64编码的字符串进行传输。这样做的好处是可以直接在HTML或CSS中嵌入Base64编码的数据,避免了额外的网络请求。
```javascript
// 将图片转换为Base64编码
var img = document.getElementById('myImage');
var canvas = document.createElement('canvas');
canvas.width = img.width;
canvas.height = img.height;
var ctx = canvas.getContext('2d');
ctx.drawImage(img, 0, 0);
var base64 = canvas.toDataURL('image/png');
```
2. 数据URL:在HTML中,可以使用Base64编码的数据URL直接嵌入图片、字体或其他资源,避免了额外的网络请求。
```html
<img src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA...\">
```
3. Cookie存储:由于Cookie只能存储文本数据,使用Base64编码可以将二进制数据转换为字符串进行存储。
```javascript
// 将二进制数据转换为Base64编码存储到Cookie
function setCookie(name, value) {
var encodedValue = btoa(value);
document.cookie = name + \"=\" + encodedValue;
}
``
"Base64是一种将二进制数据转换为可打印字符的编码方式。它是一种将任意字节流转换为ASCII字符串的方法,常用于在网络传输或存储中处理非文本数据。
Base64使用64个字符来表示二进制数据,包括A-Z、a-z、0-9以及\"+\"和\"/\"两个特殊字符。它将每3个字节的数据编码为4个字符,如果最后剩余1或2个字节,会在编码后加上\"=\"填充。
Base64的使用场景有很多,下面列举几个常见的场景:
1. 图片、音频和视频的传输:在网络传输中,二进制的图片、音频和视频数据需要转换为Base64编码的字符串进行传输。这样做的好处是可以直接在HTML或CSS中嵌入Base64编码的数据,避免了额外的网络请求。
```javascript
// 将图片转换为Base64编码
var img = document.getElementById('myImage');
var canvas = document.createElement('canvas');
canvas.width = img.width;
canvas.height = img.height;
var ctx = canvas.getContext('2d');
ctx.drawImage(img, 0, 0);
var base64 = canvas.toDataURL('image/png');
```
2. 数据URL:在HTML中,可以使用Base64编码的数据URL直接嵌入图片、字体或其他资源,避免了额外的网络请求。
```html
<img src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA...\">
```
3. Cookie存储:由于Cookie只能存储文本数据,使用Base64编码可以将二进制数据转换为字符串进行存储。
```javascript
// 将二进制数据转换为Base64编码存储到Cookie
function setCookie(name, value) {
var encodedValue = btoa(value);
document.cookie = name + \"=\" + encodedValue;
}
``
展开
1
2