var data1="a";
var data2="b";
var data3="<div style='color:red;'>This is a blob</div>";
var data4={'name':'abc'};
var blob1=new Blob([data1]);
var blob2=new Blob([data1,data2]);
var blob3 = new Blob([data3]);
var blob4 = new Blob([JSON.stringify(data4)]);
var blob5 = new Blob([data4]);
var blob6 = new Blob([data3, data4]);
console.log('blob1--',blob1); //输出:Blob {size: 1, type: ""}
console.log('blob2--',blob2); //输出:Blob {size: 2, type: ""}
console.log('blob3--',blob3); //输出:Blob {size: 44, type: ""}
console.log('blob4--',blob4); //输出:Blob {size: 14, type: ""}
console.log('blob5--',blob5); //输出:Blob {size: 15, type: ""}
console.log('blob6--',blob6); //输出:Blob {size: 59, type: ""}
console.log('typeof(JSON.stringify(data4))--',typeof(JSON.stringify(data4)));//输出:string
console.log('JSON.stringify(data4)--',JSON.stringify(data4)); //输出: {"name":"abc"}
console.log('typeof(data4)--',typeof(data4)); //输出:object
console.log('data4--',data4); //输出: Object { name: "abc" }
// 作者:艾特老干部
// 链接:https://juejin.im/post/59e35d0e6fb9a045030f1f35
// 来源:掘金
// 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
var data5 = 'abcdef';
var blob7=new Blob([data5]);
var blob8 = blob7.slice(0,3);
console.log('blob7--',blob7); //输出:Blob {size: 6, type: ""}
console.log('blob8--',blob8); //输出:Blob {size: 3, type: ""}
size代表Blob对象中所包含数据的字节数。
这里要注意,使用字符串和普通对象创建Blob时的不同,
blob4使用通过JSON.stringify把data4对象转换成json字符串,blob5则直接使用data4创建,
两个对象的size分别为14和15。blob4的size等于14很容易理解,
因为JSON.stringify(data4)的结果为:"{"name":"abc"}",正好14个字节(不包含最外层的引号)。
blob5的size等于15是如何计算而来的呢?实际上,当使用普通对象创建Blob对象时,
相当于调用了普通对象的toString()方法得到字符串数据,然后再创建Blob对象。
所以,blob5保存的数据是"[object Object]",是15个字节(不包含最外层的引号)。