解析原来浏览器原生支持JS Base64编码解码

当我们需要在前端对数据进行编码或解码时,可以使用JavaScript中的Base64方法。而浏览器也提供了原生支持Base64编码解码的方法,我们只需要使用浏览器提供的方法即可。

浏览器原生方法

浏览器原生方法包括 window.btoa()window.atob(),分别用于编码和解码Base64数据。

编码方法:window.btoa()

将字符串或二进制数据编码为Base64数据。

let data = "Hello, world!";
let base64Data = window.btoa(data);
console.log(base64Data); // "SGVsbG8sIHdvcmxkIQ=="

解码方法:window.atob()

将Base64数据解码为原始字符串或二进制数据。

let base64Data = "SGVsbG8sIHdvcmxkIQ==";
let decodedData = window.atob(base64Data);
console.log(decodedData); // "Hello, world!"

需要注意的是,使用window.atob()解码Base64数据时,如果数据格式不正确会抛出异常。

实际应用示例

示例1:图片 Base64 编解码

在前端开发过程中,我们可能会使用 Base64 编码给图片加上水印、缩略图等效果。以下是一个简单的示例:

<!-- HTML -->
<img id="image" src="./example.png" />

<!-- JavaScript -->
const image = document.getElementById("image");
const canvas = document.createElement("canvas");
canvas.width = image.width;
canvas.height = image.height;

const ctx = canvas.getContext("2d");
ctx.drawImage(image, 0, 0, canvas.width, canvas.height);

// 将画布转换为 Base64 数据
const base64Data = canvas.toDataURL();

// 将 Base64 数据放入 img 标签
image.src = base64Data;

示例2:WebSocket 数据传输中 Base64 编解码

在使用 WebSocket 进行数据传输时,为了避免在传输过程中出现特殊字符而导致的问题,可以使用 Base64 编码对数据进行处理。

以下是一个示例,演示如何在使用 WebSocket 进行数据传输时进行 Base64 编解码:

const socket = new WebSocket("wss://example.com/ws");

function sendMsg(msg) {
  // 将原始消息转换为 Base64 数据
  const base64Data = window.btoa(msg);
  socket.send(base64Data);
}

socket.onmessage = (event) => {
  const base64Data = event.data;
  // 将 Base64 数据解码为原始消息
  const msg = window.atob(base64Data);
  console.log("Received message:", msg);
};

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:解析原来浏览器原生支持JS Base64编码解码 - Python技术站

(0)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • js实现class样式的修改、添加及删除的方法

    Javascript可以通过操作DOM元素来实现对class样式的修改、添加及删除。 修改class样式的方法 要修改DOM元素的class属性,可以使用classList属性,该属性包含了添加、删除和切换class的方法。 const element = document.querySelector(".target-element")…

    JavaScript 2023年5月19日
    00
  • webgl 系列 —— 着色器语言

    其他章节请看: webgl 系列 着色器语言 本篇开始学习着色器语言 —— GLSL全称是 Graphics Library Shader Language (图形库着色器语言) GLSL 是一门独立的语言,和其他语言一样有自己的变量、运算符、函数、循环(for)、控制语句(if)、函数、数组等等。 GLSL 比较简单。其专门用于编写着色器,舍弃了许多编程语…

    JavaScript 2023年4月18日
    00
  • JavaScript高级程序设计阅读笔记(五) ECMAScript中的运算符(一)

    下面是关于JavaScript高级程序设计阅读笔记(五)ECMAScript中的运算符(一)的完整攻略。 标题 JavaScript高级程序设计阅读笔记(五) ECMAScript中的运算符(一) 简介 本篇文章主要介绍ECMAScript中的运算符。在JavaScript中,运算符是用于执行各种算术、比较和逻辑操作的符号。本文将介绍相应的运算符及其优先级。…

    JavaScript 2023年5月27日
    00
  • js中函数调用的两种常用方法使用介绍

    JS中函数调用的两种常用方法是函数声明与函数表达式,下面我将对这两种方法进行介绍和举例子说明。 1. 函数声明 函数声明的形式如下: function functionName(parameters) { //函数体 } 其中,functionName 是函数名,parameters 是参数列表,函数体里面可以写任何合法的 JS 代码。函数声明完之后,我们可…

    JavaScript 2023年5月27日
    00
  • 替代window.event.srcElement效果的可兼容性的函数

    替代window.event.srcElement的可兼容性函数,可以使用event.target属性来获取触发事件的元素。但是需要注意的是,此方法在IE8及以下版本不兼容,需要做兼容处理。 下面是完整的攻略,包含两条示例说明: 1. 使用event.target属性获取元素 使用event.target属性可获取触发事件的元素,示例如下: function…

    JavaScript 2023年6月10日
    00
  • vue-router定义元信息meta操作

    vue-router是Vue.js官方的路由管理库,它可以帮助我们快速开发单页应用程序。在应用程序中,通常会有很多的页面,而有时候需要为这些页面增加一些标识,例如页面标题、页面关键字、页面描述等等。这些标识可以让搜索引擎更好地索引网站内容,也可以让用户更好地理解页面。 为此,vue-router提供了定义元信息meta的操作。元信息指我们在head标签中添加…

    JavaScript 2023年6月11日
    00
  • js格式化时间和js格式化时间戳示例

    下面是我对“js格式化时间和js格式化时间戳示例”的详细讲解。 什么是js格式化时间和js格式化时间戳? 在网站开发过程中,时间是一个很常见的数据类型。js格式化时间指的是将时间戳转化为人类可读的时间字符串,而js格式化时间戳指的是将时间字符串转化为时间戳。 如何使用js格式化时间? 在js中,可以使用Date对象来处理时间。下面是一个使用js格式化时间的示…

    JavaScript 2023年5月27日
    00
  • 告诉你什么是javascript的回调函数

    下面是 “告诉你什么是javascript的回调函数”的完整攻略: 什么是回调函数? 回调函数(Callback Function)是一种将一个函数作为参数传递给另一个函数,并且执行这个函数的过程。回调函数在Javascript中经常被使用,特别是在事件处理程序中。 回调函数的语法 回调函数的语法非常简单。以下是一个函数接受一个回调函数作为参数的例子: fu…

    JavaScript 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部