详细解释
URLSearchParams 构造函数:
- URLSearchParams 构造函数接受一个字符串或一个类数组对象(如数组或对象),并将其转换为查询字符串格式。
- 常见的用法是传入一个查询字符串或一个对象。
query 参数:
-
query 可以是一个查询字符串(例如 “key1=value1&key2=value2”),也可以是一个对象(例如 { key1:
‘value1’, key2: ‘value2’ })。 -
如果 query 是一个字符串,URLSearchParams 会解析这个字符串并生成相应的键值对。
-
如果 query 是一个对象,URLSearchParams 会将对象的键值对转换为查询字符串格式。
示例 1:使用查询字符串
let query = "name=John&age=30";
let params = new URLSearchParams(query);
console.log(params.get('name')); // 输出: John
console.log(params.get('age')); // 输出: 30
示例 2:使用对象
let query = { name: 'John', age: 30 };
let params = new URLSearchParams(query);
console.log(params.get('name')); // 输出: John
console.log(params.get('age')); // 输出: 30
常用方法
URLSearchParams 提供了许多有用的方法来处理查询字符串:
append(name, value):添加一个新的键值对。
delete(name):删除指定的键及其值。
get(name):获取指定键的第一个值。
getAll(name):获取指定键的所有值(返回一个数组)。
has(name):检查是否存在指定的键。
set(name, value):设置指定键的值,如果键已存在,则更新其值。
toString():将 URLSearchParams 对象转换为查询字符串。
let query = "name=John&age=30";
let params = new URLSearchParams(query);
console.log(params.get('name')); // 输出: John
console.log(params.get('age')); // 输出: 30
params.append('city', 'New York'); // 添加一个新的键值对
console.log(params.toString()); // 输出: name=John&age=30&city=New%20York
params.set('age', '31'); // 更新键值对
console.log(params.toString()); // 输出: name=John&age=31&city=New%20York
params.delete('city'); // 删除键值对
console.log(params.toString()); // 输出: name=John&age=31
总结
let params = new URLSearchParams(query) 这句代码创建了一个 URLSearchParams 对象,用于处理查询字符串。通过这个对象,你可以方便地添加、删除、获取和修改查询参数。这对于构建和解析 URL 查询字符串非常有用。