JavaScript Blob对象原理及用法详解


Posted in Javascript onOctober 14, 2020

Blob是JavaScript内建对象,表示不可变的原始数据,类似文件的对象。

blob是表示原始数据的不可变对象,这些数据不一定是JavaScript原生格式的,文件接口基于Blob,继承Blob功能并将其扩展为支持用户系统上的文件。

Blob有很多用途:

可以从网络的内容创建。

可以保存到磁盘或从磁盘读取。

例如,它们是FileReader API中使用的File的基础数据结构。

我们可以使用 Blob() 构造函数从其他非blob对象和数据构造Blob。

Blob构造函数

Blob构造函数允许从其他对象创建Blob。例如,从字符串构造Blob。

let hero = {name: 'Batman'}
let blobObject = new Blob([jsON.stringify(hero, null, 2)], { type: 'application/json' });
console.log(blobObject);

现在,如果我们在浏览器中运行此文件,我们将在浏览器控制台中看到以下输出。

JavaScript Blob对象原理及用法详解

Blob size 属性

Blob.size 属性返回Blob或File的大小(以字节为单位)。

var sizeInBytes = blob.size

参见以下示例。

let hero = {name: 'Batman'}
let blobObject = new Blob([JSON.stringify(hero, null, 2)],{ type: 'application/json' });
console.log(blobObject.size);

将会输出:22

Blob.slice() 方法

Blob.slice() 函数用于创建新的Blob对象,该对象包含源Blob的指定字节范围内的数据。

instanceOfBlob.slice([start [, end [, contentType]]]);

参见以下代码。

let hero = {name: 'Batman'}
let blobObject = new Blob([JSON.stringify(hero, null, 2)], { type: 'application/json' });
console.log(blobObject.slice(10, 16, { type: 'application/json' }));

输出

JavaScript Blob对象原理及用法详解

总结

使用二进制远程文件时,Blob非常有用。

Blob可能非常大,即也可能包含音频和视频数据。可以动态创建它们,并使用Blob URL用作文件。我们可以通过多种不同方式使用它们,以使它们更有用。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript事件模型代码
Jul 01 Javascript
jQuery下的几个你可能没用过的功能
Aug 29 Javascript
jquery异步调用页面后台方法‏(asp.net)
Mar 01 Javascript
JS判断客服QQ号在线还是离线状态的方法
Jan 13 Javascript
js和jq使用submit方法无法提交表单的快速解决方法
May 17 Javascript
动态JavaScript所造成一些你不知道的危害
Sep 25 Javascript
Angular实现搜索框及价格上下限功能
Jan 19 Javascript
Vue.js 图标选择组件实践详解
Dec 03 Javascript
微信小程序蓝牙连接小票打印机实例代码详解
Jun 03 Javascript
vue.js 2.0实现简单分页效果
Jul 29 Javascript
js+canvas实现简单扫雷小游戏
Jan 22 Javascript
详解webpack-dev-middleware 源码解读
Mar 23 Javascript
基于javascript原生判断DOM是否加载完毕
Oct 14 #Javascript
JavaScript常用进制转换及位运算实例解析
Oct 14 #Javascript
Vue实现鼠标经过文字显示悬浮框效果的示例代码
Oct 14 #Javascript
JavaScript本地储存:localStorage、sessionStorage、cookie的使用
Oct 13 #Javascript
原生JS实现相邻月份日历
Oct 13 #Javascript
jquery简易手风琴插件的封装
Oct 13 #jQuery
原生js实现照片墙效果
Oct 13 #Javascript
You might like
如何过滤高亮显示非法字符
2006/10/09 PHP
简单的方法让你的后台登录更加安全(php中加session验证)
2012/08/22 PHP
浅析php中jsonp的跨域实例
2013/06/21 PHP
一个简洁实用的PHP缓存类完整实例
2014/07/26 PHP
php实现refresh刷新页面批量导入数据的方法
2014/12/23 PHP
基于ThinkPHP实现批量删除
2015/12/18 PHP
PHP的swoole扩展安装方法详细教程
2016/05/18 PHP
Laravel实现通过blade模板引擎渲染视图
2019/10/25 PHP
学习jquery必备 api中英文对照的chm手册 下载
2007/05/03 Javascript
js 页面输出值
2008/11/30 Javascript
JS生成随机字符串的多种方法
2014/06/10 Javascript
我的NodeJs学习小结(一)
2014/07/06 NodeJs
jquery中的常用事件bind、hover、toggle等示例介绍
2014/07/21 Javascript
location.hash保存页面状态的技巧
2016/04/28 Javascript
javascript 显示全局变量与隐式全局变量的区别
2017/02/09 Javascript
Vue简单封装axios之解决post请求后端接收不到参数问题
2020/02/16 Javascript
JavaScript监听键盘事件代码实现
2020/06/03 Javascript
vue项目中播放rtmp视频文件流的方法
2020/09/17 Javascript
[10:18]2018DOTA2国际邀请赛寻真——Fnatic能否笑到最后?
2018/08/14 DOTA
python中sleep函数用法实例分析
2015/04/29 Python
详解python里使用正则表达式的分组命名方式
2017/10/24 Python
python机器学习之神经网络(三)
2017/12/20 Python
详解python 3.6 安装json 模块(simplejson)
2019/04/02 Python
详解python项目实战:模拟登陆CSDN
2019/04/04 Python
Python 字节流,字符串,十六进制相互转换实例(binascii,bytes)
2020/05/11 Python
CSS3 绘制BMW logo实的现代码
2013/04/25 HTML / CSS
美国最古老的精致书写工具制造商:A.T. Cross(高仕)
2018/01/30 全球购物
巴西网上药店:Drogaria Araujo
2021/01/06 全球购物
SQL Server面试题
2013/04/04 面试题
触发器(trigger)的功能都有哪些?写出一个触发器的例子
2012/09/17 面试题
创业女性典型材料
2014/05/02 职场文书
会计试用期自我评价怎么写
2014/09/18 职场文书
校车司机安全责任书
2015/05/11 职场文书
2015年乡镇民政工作总结
2015/05/13 职场文书
python 实现图与图之间的间距调整subplots_adjust
2021/05/21 Python
JAVA springCloud项目搭建流程
2022/05/11 Java/Android