解析原来浏览器原生支持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日

相关文章

  • javascript中定义类的方法汇总

    下面就来为大家详细讲解“JavaScript中定义类的方法汇总”。 一、使用函数定义类 在 JavaScript 中最基本的定义类的方式就是使用函数。函数内部使用 this 关键字绑定属性和方法,最终返回该函数本身,从而构成一个类。 function Person(name, age) { this.name = name; this.age = age; …

    JavaScript 2023年5月27日
    00
  • JavaScript函数的使用教程

    JavaScript函数的使用教程 JavaScript函数是一个独立的可重复使用的代码块,用于执行特定的任务或计算。函数可以接收输入参数和返回计算结果,非常有用。在这份教程中,我们将介绍JavaScript函数的使用和定义。 定义和使用函数 函数的定义使用function关键字,后面跟着函数名。函数可以包含一系列的语句和计算逻辑。下面是一个简单的计算乘积的…

    JavaScript 2023年5月18日
    00
  • 常用的js验证和数据处理总结

    下面详细讲解”常用的JS验证和数据处理总结”: 栏目介绍 本栏目主要针对常用的JS验证和数据处理进行总结,并提供一些示例说明,方便开发者在开发过程中快速应用。 表单数据验证 常用的表单验证有:非空验证、数字验证、电子邮件验证、电话号码验证、URL验证、正则验证。 针对非空验证可以使用下面的代码片段: function checkNotNull(str){ i…

    JavaScript 2023年6月10日
    00
  • js注入 黑客之路必备!

    JS注入是Web安全领域中非常重要的一个议题,也是Web攻击中常用的一种手段。攻击者可以通过JS注入攻击网站或用户,包括窃取用户信息、篡改网页内容、控制用户会话等。 以下是一个简单的JS注入攻击示例: 攻击目标 我们以一个简单的登录页面(login.html)为目标页面,该页面通过使用jQuery库将用户名和密码传递给后台验证,并在验证失败时显示错误提示。页…

    JavaScript 2023年5月19日
    00
  • 解析JavaScript中delete操作符不能删除的对象

    解析JavaScript中delete操作符不能删除的对象 在JavaScript中,delete操作符可以用来删除对象中的属性,但是有些情况下,delete操作符却不能删除对象中的属性。本攻略将为您介绍delete操作符不能删除的对象以及造成这种限制的原因。 delete操作符无法删除的对象 delete操作符无法删除以下类型的对象: 环境变量(Lexic…

    JavaScript 2023年5月28日
    00
  • 总结JavaScript中布尔操作符||与&&的使用技巧

    下面是关于“总结JavaScript中布尔操作符||与&&的使用技巧”的攻略: 1. 什么是布尔操作符 布尔操作符是指用于比较两个值并返回一个布尔值的运算符。在JavaScript中,常用的布尔操作符有 &&(与)、||(或)和!(非)。 2. 布尔操作符||(或) 2.1 基本使用 布尔操作符||的作用是在两个操作数中,只要…

    JavaScript 2023年6月11日
    00
  • js图片延迟加载的实现方法及思路

    什么是图片延迟加载? 图片延迟加载是一种优化网页性能的技术,又称为“图片懒加载”。在传统的页面加载中,页面中的图片是同步加载的,也就是在页面加载过程中,所有的图片都会被下载并渲染。然而,在某些时候,页面的某些图片并不是必要的,或者在用户刚打开页面时不可见,此时就会浪费用户的流量和时间。 图片延迟加载,是指在页面滚动到某个位置或者某个时间点再去加载图片。当用户…

    JavaScript 2023年6月11日
    00
  • 简单谈谈原生js的math对象

    当我们需要进行数学运算时,原生JavaScript提供了一个内置的Math对象,它提供了许多可用于进行常见数学运算和其他通用任务的方法。 获取随机数 我们可以使用Math对象的random()方法获取随机数。它将返回一个0到1之间的随机小数。 const randomNum = Math.random(); console.log(randomNum); /…

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