function_url构造函数

news2024/11/16 20:53:32

目录

      • URL构造函数
        • 作用
        • 语法
          • 返回值
        • 构造函数的特定方法
          • URL.createObjectURL
          • URL.revokeObjectURL
      • 应用
        • [1]获取url携带参数
        • [2]创建本地url
        • [3]为每个文件生成一个uuid

URL构造函数

作用

创建并返回指定url对象

语法

new URL(url,[base])
  • url(必填): 若是rl 是相对 URL,则会将 base 用作基准 URL,如果 url 是绝对 URL,则无论参数base是否存在,都将被忽略
  • base: 是一个表示基准 URL 的 DOMString,在 url 是相对 URL 时,它才会起效。如果未指定,则默认为 ‘’
  • 举例说明
    // 由于第一个参数为相对URL,会将第二个参数作为基路径 
    // https://www.baidu.com/s?wd=2222
    new URL('/s?wd=2222', 'https://www.baidu.com')
    
    // 由于第一个参数为绝对URL,会将第二个参数忽略
    // https://www.baidu.com
    new URL('https://www.baidu.com','https://www.baidu.com')
    
返回值

返回值为一个URL对象
在这里插入图片描述

包含以下属性
[1]包含location对象的属性;

const url = new URL('https://element.eleme.cn/?id=111&name=222#/zh-CN/component/button')
console.log(url) // URL对象
console.log(url.href) // https://element.eleme.cn/?id=111&name=222#/zh-CN/component/button
console.log(url.origin) // https://element.eleme.cn
console.log(url.protocol)// https:
console.log(url.hostname) // element.eleme.cn
console.log(url.port) // 
console.log(url.search)// ?id=111&name=222
console.log(url.hash) // #/zh-CN/component/button

[2]searchParams属性

  • 只读属性
  • 返回值为 URLSearchParams对象
    • 不会直接显示属性
    • 通过点语法也获取不到
    • 需要通过指定方法获取
      • 获取指定属性
        const url = new URL('https://element.eleme.cn/?id=111&id=222&name=222#/zh-CN/component/button')
        const { searchParams } = url
        // 通过get方法获取仅能获取第一个指定属性的值
        const id = searchParams.get('id')
        console.log('id', id) // 111
        // 通过getAll方法获取可以获取所有的指定属性的值
        const ids = searchParams.getAll('id')
        console.log('ids', ids) // ['111','222']
        
      • 判断属性是否存在
        const url = new URL('https://element.eleme.cn/?id=111&id=222&name=222#/zh-CN/component/button')
        const { searchParams } = url
        console.log(searchParams.has('name'), searchParams.has('sex')) // true false
        

构造函数的特定方法

URL.createObjectURL
  • 语法

    • URL.createObjectURL(object)
      
    • object参数可以是一个 File对象 或 Blob对象; 不可是远程链接!

      • URL.createObjectURL('http://test2.clipworks.com:8666/api/thirdSite/downloadTemplate') // 报错 Failed to execute 'createObjectURL' on 'URL'
        
  • 返回值

    • 返回表示指定的 File 对象或 Blob 对象的本地url;
    • 在每次调用 createObjectURL() 方法时,都会创建一个新的 URL 对象,即使你已经用相同的对象作为参数创建过;
      • 浏览器在 document 卸载的时候,会自动释放它们;
      • 也可主动通过 revokeObjectURL 方法去主动释放内存;
URL.revokeObjectURL
  • 作用:释放一个之前已经存在的、通过调用 URL.createObjectURL() 创建的 URL 对象

  • 语法

    • URL.revokeObjectURL(object)
      
    • object:通过调用 URL.createObjectURL() 创建的 URL 对象

应用

[1]获取url携带参数

  • (1)通过location对象获取参数

    • const { search } = location
      const paramsArr = search.split('?')[1].split('&')
      const id = paramsArr[0].split('=')[1] // 111
      const name = paramsArr[1].split('=')[1] // 222
      
  • (2)通过创建URl对象获取参数

    • const { searchParams } = new URL(window.location)
      const id = searchParams.get('id') // 111
      const name = searchParams.get('name') // 222
      

[2]创建本地url

    const xhr = new XMLHttpRequest()
  	xhr.open('POST','https://file2.clipworks.com/4c217acc09226795a7ebb8461ddf548f/20220726/469c1056-749d-4c47-819e-35f91c70e163')
	xhr.responseType = 'blob'
	xhr.send()
	xhr.onload = function(){
	const url = URL.createObjectURL(xhr.response)
	console.log('结果', url) // 本地url
  }

[3]为每个文件生成一个uuid

// uuid是独一无二的
const blobUrl = URL.createObjectURL(new Blob())
file[0].uuid = blobUrl.slice(blobUrl.lastIndexOf('/') + 1)
// 主动释放内存
URL.revokeObjectURL(blobUrl)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/195734.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

操作系统简介

坚持看完,结尾有思维导图总结 这里写目录标题概述冯诺依曼体系结构操作系统简介总结概述 本文先介绍冯诺依曼体系结构,并且举了几个例子进行理解,随后粗略介绍操作系统功能,并且为进程的理解打下基础 冯诺依曼体系结构 首先上一…

Python入门第一课——Python起步安装、Sublime Text安装教程,环境配置

Python入门第一课——Python起步安装、Sublime Text文本编辑器1 Python简介2 Python安装2.1 下载安装包2.2 开始安装Python3 Python起步——安装编辑器Sublime Text3.1 Sublime Text简介3.2 Sublime Text安装安装包打开文件创建快捷方式3.3 打开sublime text3.4 第一个程序&…

LeetCode 刷题系列 -- 110. 平衡二叉树

给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 。示例 1:输入:root [3,9,20,null,null,15,7]输出:true示例…

Lombok

Lombok概述Lombok插件安装Lombok依赖注解SetterGetterToStringEqualsAndHashCodeNonNull构造方法相关注解NoArgsConstructorRequiredArgsConstructorAllArgsConstructorDataBuilderLogCleanupSneakyThrows概述 LomBok可以通过注解,帮助开发人员消除JAVA中尤其是POJ…

【目标检测论文解读复现NO.30】基于改进YOLO v5的宁夏草原蝗虫识别模型研究

前言此前出了目标改进算法专栏,但是对于应用于什么场景,需要什么改进方法对应与自己的应用场景有效果,并且多少改进点能发什么水平的文章,为解决大家的困惑,此系列文章旨在给大家解读最新目标检测算法论文,…

【FPGA】FPGA实现SPI协议读写FLASH(二)----- SPI接口驱动模块设计

SPI接口驱动模块设计一、功能分析二、状态机设计三、信号说明四、代码实现五、仿真测试写在前面:FPGA实现SPI协议读写FLASH系列相关文章:SPI通信协议【FPGA】FPGA实现SPI协议读写FLASH(一)----- M25P16操作概述在上篇文章中对FLAS…

【MyBatis】框架特点,ORM思想,事务管理机制

1. Mybatis概述:1.1 基础知识:SSM三大框架: Spring SpringMVC MyBatis框架其实就是对通用代码的封装, 提前写好一堆接口和类, 在做项目的时候直接引入这些常用的借口和类(引入框架), 基于这些现有的接口和类进行开发, 可以大大提高开发效率.框架一般是以jar包的形式存在的, j…

Qt UDP

UDP是一种是一种轻量级、不可靠、面向数据报的无连接协议。当可靠性不重要时,可以使用它。 QUdpSocket 是 QAbstractSocket 的一个子类,所以拥有QAbstractSocket的各种方法,允许您发送和接收 UDP 数据报。 QAbstractSocket的各种函数已经在上…

【数据结构基础】树 - 前缀树(Trie Tree)

Trie,又称字典树、单词查找树或键树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是…

Zabbix灾难备份多种方式分享(建议收藏)

感谢本文译者田川 ! 欢迎更多资深用户翻译原厂博文(https://blog.zabbix.com/)! 田川 | 宏时数据技术工程师 Zabbix 5.0中文手册官方译者 2017-2018年Zabbix中国峰会演讲嘉宾 8年监控领域实施和管理工作经验 ►在这篇博文中&#xff…

mysql关系型数据库免安装包下载以及安装教程

对于大部分技算计技术相关的初学者而言,mysql关系型数据库无可厚非是最适合初学者学习使用的,但是对于安装mysql数据库来说可能就不是特别明确,到底如何安装。互联网上比较多都是官网的.msi安装包,自带mysql客户端和一些其他关联程…

2023年“华数杯”国际大学生数学建模A题赛题发布

MCM问题一:雅鲁藏布江综合发展规划背景雅鲁藏布江是中国最长的高原河流,也是世界上最高的高原河流之一。它起源 于喜马拉雅山脉的北部山麓,从西向东流,然后转向南部,流向印度。中国的雅鲁 藏布江全长2057公里&#xff…

诺依集成mybatis换成mybatis-plus(完美解决)

总结分析:问题1:mybatis与mybatis-plus能否共存?经过将近一天的搜索发现,mybatis与mybatis-plus的sql工厂不通,mybatis是SqlSessionFactoryBean,而mybatis-plus是MybatisSqlSessionFactoryBean,…

python下载油管、B站视频的方法

这是2023年的第一篇博客。但绝不是最后一篇。 今天的博客记录篇娱乐向。 今夜想让wh听我听的歌。 利用python的you-get实现听歌自由。(虽然有音乐会员) FFmpeg的下载与安装。 FFmpeg的下载地址 选择对应型号的操作系统。 本次演示采用windows操作系统…

ChatGPT的调用API被提前发现了?

前言 近日,有消息称ChatGPT的API已经被提前发现。作为一名技术爱好者,我决定亲自试试看。经过几次尝试,我发现这确实是真的!(不过OpenAI确实动作很快,如今已经修补了大部分的模型)。 1. 如何调…

使用 4EVERLAND 将您的 Damus 配置文件存储到 IPFS/Arweave

真正控制您的社交网络! 挑战Twitter的去中心化社交应用Damus已登陆App Store。它是第一个使用名为Nostr的开放式去中心化社交网络协议的移动应用程序,该协议由 Twitter 联合创始人 Jack Dorsey 资助,该协议基于加密密钥对。 Damus 的出现是…

001. SQL慢查询排查(字段类型不一致)

目录一:背景二:排查过程2.1: SQL慢查询定位2.2: Python层面分析将String翻译成Int类型的原因2.3: Python进行SQL执行时间检测出现的问题三:总结一:背景 新的业务上线后, 合作部门发现我们引擎执行完, 回调…

从用户到专家-Zabbix培训【优惠】通道开启

Q:我从2.0开始使用Zabbix,还用得着参加培训? A:相信我,多得是你不知道的事! Zabbix与时俱进,6.0新增了很多功能,如何快速系统掌握? 培训内容是Zabbix原厂设计的系统课…

自学软件测试从哪里开始?给还在迷茫的人一条出路

这两天和朋友谈到软件测试的发展,其实软件测试已经在不知不觉中发生了非常大的改变,前几年的软件测试行业还是一个风口,随着不断地转行人员以及毕业的大学生疯狂地涌入软件测试行业,目前软件测试行业“缺口”已经基本饱和。当然&a…

JVM的垃圾回收机制GC

GC回收区域GC主要针对堆区回收,回收是以对象为单位。方法区的类对象加载后不太需要回收;栈区的释放时机确定,不必回收;程序计数器是固定内存地址,不必回收。找出垃圾的方法引用计数法(jvm未采取&#xff09…