URLSearchParams对象用于处理URL中查询字符串,即?之后的部分。

1.语法

其实例对象的用法和Set数据结构类似。实例对象本身是可遍历对象。但是不是遍历器。

  var paramsString = 'q=URLUtils.searchParams&topic=api';
  var searchParams = new URLSearchParams(paramsString);

2. 实例操作方法

1. has(key)

  searchParams.has('topic'); // true

2.get(key)

  searchParams.get('topic'); // 'api'

3.getAll(key)

当同一个键值对应多个值时用该方法

  searchParams.getAll('topic'); // ['api']

4.append(key,value)-增加

  searchParams.append('test', 'testvalue');
  // searchParams.toString()变为
  // "q=URLUtils.searchParams&topic=api&test=testValue"

5delete(key)-删除

会删除所有键值为key的查询参数

  searchParams.delete('test');
  // searchParams.toString()变为
  // "q=URLUtils.searchParams&topic=api"

6. set(key, value) 修改

  searchParams.set('q', 'test');
  // searchParams.toString()变为
  // "q=test&topic=api"

7.toString()

将实例对象变回字符串的形式

3. 实例遍历方法

下面的方法调用都返回一个Iterator对象。可以通过调用next()方法遍历对象。

想要获取预想的结果,需要使用扩展运算符。

1.keys()

  [...searchParams.keys()] // ["q","topic"]

2.value()

  [... searchParams.values()] // ["test", "api"]

3.entries()

因为实例对象本身也是可遍历对象。也可以使用扩展运算符。而且和entries()方法的结果相同。

  [... searchParams.entries()] // [["q", "test"],["topic", "api"]]
  //遍历自身
  [... searchParams] // [["q", "test"],["topic", "api"]]

4. 应用

1. 实例作为POST方法的请求体

该类型的请求体,浏览器会自动添加请求头:

     Content-Type: application/x-www-form-urlencoded;charset=UTF-8

而且,作为请求体的=两侧的数据会被进行URL编码(encodeURIComponent())。

      const data = new URLSearchParams("a=b&c=d");
fetch('/post',{
method: 'POST',
body: data
}).then((result) => console.log(result))

2. 通过URL的实例对象的searchParams属性获取URLSearchParams实例

  const url = new URL(location);
  url.searchParams instanceof URLSearchParams // true

了解URLSearchParams对象的更多相关文章

  1. URLSearchParams对象

    URLSearchParams对象用于处理URL中查询字符串,即?之后的部分. 1.语法 其实例对象的用法和Set数据结构类似.实例对象本身是可遍历对象.但是不是遍历器. var paramsStri ...

  2. ECMA Script 6_对象的扩展

    对象 1. ES6 允许直接写入变量和函数,作为对象的属性和方法 const foo = 'bar'; /*****************属性的优化********************/ con ...

  3. ES6学习笔记(七)对象的新增方法

    1.Object.is() ES5 比较两个值是否相等,只有两个运算符:相等运算符(==)和严格相等运算符(===).它们都有缺点,前者会自动转换数据类型,后者的NaN不等于自身,以及+0等于-0.J ...

  4. URLSearchParams/FormData

    一.URLSearchParams()(很好用,但有一定兼容问题,未来版本的浏览器中该功能的语法和行为可能随对应的标准文档而改变.) URLSearchParams 接口定义了一些实用的方法来处理 U ...

  5. 《ES6标准入门》(阮一峰)--11.对象的新增方法

    1.Object.is() ES5 比较两个值是否相等,只有两个运算符:相等运算符(==)和严格相等运算符(===).它们都有缺点,前者会自动转换数据类型,后者的NaN不等于自身,以及+0等于-0.J ...

  6. JavaScript的URLSearchParams方法

    URLSearchParams 接口定义了一些实用的方法来处理 URL 的查询字符串. 一个实现了 URLSearchParams 的对象可以直接用在 for…of 结构中,不需要使用 entries ...

  7. URLSearchParams(鲜为人知处理URL地址的技能)

    最近学习中无意发现url新处理方式,看到之后十分感兴趣就整理了一下. URLSearchParams URLSearchParams 接口定义了一些实用的方法来处理 URL 的查询字符串.参照 URL ...

  8. JavaScript标准参考教材(alpha)--笔记

    一.导论 二.基本语法 1.严格来说var a=1与a=1效果不太一样,delete命令无法删除前者. JavaScirpt是一种动态类型语言,也就是说,变量的类型没有限制,可以赋予各种类型的值. J ...

  9. axios全攻略

    随着 vuejs 作者尤雨溪发布消息,不再继续维护vue-resource,并推荐大家使用 axios 开始,axios 被越来越多的人所了解.本来想在网上找找详细攻略,突然发现,axios 的官方文 ...

  10. vue使用Axios做ajax请求

    vue2.0之后,就不再对vue-resource更新,而是推荐使用axios 1. 安装 axios $ npm install axios 或 $ bower install axios 2. 在 ...

随机推荐

  1. 获取form提交的返回值

    获取form提交的返回值 HTML代码如下: <form action="" method="post" enctype="multipart/ ...

  2. Kernel调试追踪技术之 Kprobe on ARM64

    kprobe是什么? kprobe 是一种动态调试机制,用于debugging,动态跟踪,性能分析,动态修改内核行为等,2004年由IBM发布,是名为Dprobes工具集的底层实现机制[1][2],2 ...

  3. kdump

    Kdump简单介绍 什么是Kdump? Kdump是在系统崩溃.死锁或死机时用来转储内存运行参数的一个工具和服务,是一种新的crash dump捕获机制,用来捕获kernel crash(内核崩溃)的 ...

  4. kotlin协程——>组合挂起函数

    默认顺序调用 假设我们在不同的地⽅定义了两个进⾏某种调⽤远程服务或者进⾏计算的挂起函数.我们只假设它们都是有⽤的,但是实际上它们在这个⽰例中只是为了该⽬的⽽延迟了⼀秒钟: suspend fun do ...

  5. 从2s优化到0.1s,我用了这5步

    前言 分类树查询功能,在各个业务系统中可以说随处可见,特别是在电商系统中. 但就是这样一个简单的分类树查询功能,我们却优化了5次. 到底是怎么回事呢? 背景 我们的网站使用了SpringBoot推荐的 ...

  6. WPF中为Popup和ToolTip使用WindowMaterial特效 win10/win11

    先看效果图: 大致思路是:通过反射获取Popup内部的原生窗口句柄,然后通过前文已经实现的WindowMaterial类来应用窗口特效:对于ToolTip,为了保持其易用性,我使用了附加属性+全局样式 ...

  7. Httprunner生成Allure格式HTML报告

    一.httprunner v2.x版本的报告 最近组内其他同学使用httprunner做接口自动化,之前没有接触过httprunner,发现httprunner相比pytest和unittest有自己 ...

  8. 一个.NET开源、轻量级的运行耗时统计库 - MethodTimer

    前言 在.NET开发中,为了准确统计对应方法的执行时间,我们最常用的方式是手动使用 Stopwatch 来显式编写计时逻辑,但是假如你需要大量的使用 Stopwatch 来进行耗时统计的话不利于保持代 ...

  9. Clickhouse入门及实践

    ClickHouse安装 采用doker安装测试: 拉取服务端 docker pull yandex/clickhouse-server 拉取客户端 docker pull yandex/clickh ...

  10. C++之OpenCV入门到提高004:Mat 对象的使用

    一.介绍 今天是这个系列<C++之 Opencv 入门到提高>得第四篇文章.这篇文章很简单,介绍如何使用 Mat 对象来实例化图像实例,了解它的构造函数和常用的方法,这是基础,为以后的学习 ...