前端博客

165 阅读1分钟

web worker

  1. 允许一段 JavaScript 程序运行在主线程之外的另外一个线程中。 1.

js中的blob

todo 内容较多,慢慢研究

  1. Blob = Binary Large Object的缩写,直译为二进制大对象
    1. Blob 对象表示一个不可变、原始数据的类文件对象
  2. 创建blob
    1. let blob = new Blob(Array,options)
    2. blob的属性
      1. blob.size -----blob对象的大小(字节)
      2. blob.type ----获取文件类型
    3. 方法
      1. 切片 blob.slice(0,5,'text/plain')

URL

todo 文档不清晰,且涉及比较多,只看几个demo

  1. 实验中的api
  2. 用于创建和管理对象URLs的静态方法
  3. 作用
    1. 根据url创建一个类似于location的对象 2. var a = new URL('www.baidu.com?q=URLUtils.searchParams&topic=api') 3. 可以自动解析一些东西:a.searchParams.has("topic")===true 4. a.searchParams.get("topic") === "api";
    2. 创建一个 DOMString
      1. objectURL = URL.createObjectURL(blob);
      2. 返回一段带hash的url,并且一直存储在内存中,直到document触发了unload事件(例如:document close)或者执行revokeObjectURL来释放。
      3. objectURL 可以赋值给img的src或者video的src

JSON.stringify

  1. var str = {"name":"菜鸟教程", "site":"www.runoob.com"}
  2. str_pretty2 = JSON.stringify(str, null, 4) //使用四个空格缩进
  3. 第二个参数如果是数组,根据数组获取对应的键
  4. 第二个参数如果是函数
    1. 如果replacer是一个函数,它首先会被该对象调用一次,然后该对象的每个属性会调用一次,每次都会给这个函数传递两个值,key和value。想在序列化过程中跳过某个key,只需要返回undefined,否则返回提供的value。
const obj = {
    a: 0,
    b: 1,
    c: [0, 1, 2]
}
JSON.stringify(obj,['a', 'c']) // "{"a":0,"c":[0,1,2]}"

JSON.stringify(obj,(key,value)=>{
    if(key !== 'b'){
        return value
    }
})