当前位置:首页 > JavaScript

js实现queryparams

2026-03-14 12:27:24JavaScript

获取 URL 查询参数(QueryParams)

在 JavaScript 中,可以通过 URLSearchParams API 或手动解析 window.location.search 来获取 URL 的查询参数。

使用 URLSearchParams

URLSearchParams 是一个现代 API,用于处理 URL 的查询字符串。

// 假设当前 URL 是 https://example.com?name=John&age=30
const params = new URLSearchParams(window.location.search);

// 获取单个参数
const name = params.get('name'); // 'John'
const age = params.get('age'); // '30'

// 检查参数是否存在
const hasName = params.has('name'); // true

// 获取所有参数的键值对
for (const [key, value] of params.entries()) {
  console.log(key, value); // 'name John', 'age 30'
}

手动解析 window.location.search

如果不需要支持复杂场景,可以通过字符串操作解析查询参数。

// 假设当前 URL 是 https://example.com?name=John&age=30
const search = window.location.search.substring(1); // 去掉开头的 '?'
const params = {};

search.split('&').forEach(pair => {
  const [key, value] = pair.split('=');
  params[key] = decodeURIComponent(value); // 解码 URL 编码的字符
});

console.log(params.name); // 'John'
console.log(params.age); // '30'

设置或修改查询参数

可以通过 URLSearchParams 修改查询参数,并更新 URL。

const params = new URLSearchParams(window.location.search);

// 设置参数
params.set('name', 'Jane');
params.set('city', 'New York');

// 删除参数
params.delete('age');

// 生成新的查询字符串
const newSearch = params.toString(); // 'name=Jane&city=New+York'

// 更新浏览器 URL(不刷新页面)
window.history.pushState({}, '', `?${newSearch}`);

构建带查询参数的 URL

如果需要动态生成带查询参数的 URL,可以使用 URL 对象或手动拼接字符串。

js实现queryparams

使用 URL 对象

const url = new URL('https://example.com');
url.searchParams.set('name', 'John');
url.searchParams.set('age', '30');

console.log(url.toString()); // 'https://example.com?name=John&age=30'

手动拼接字符串

const baseUrl = 'https://example.com';
const params = {
  name: 'John',
  age: 30
};

const queryString = Object.keys(params)
  .map(key => `${encodeURIComponent(key)}=${encodeURIComponent(params[key])}`)
  .join('&');

const fullUrl = `${baseUrl}?${queryString}`;
console.log(fullUrl); // 'https://example.com?name=John&age=30'

注意事项

  • 如果参数值包含特殊字符(如空格、&=),需要使用 encodeURIComponent 编码。
  • URLSearchParams 会自动处理编码和解码,但手动解析时需要调用 decodeURIComponent
  • 修改 URL 时,pushState 不会触发页面刷新,而 window.location.assign 会刷新页面。

标签: jsqueryparams
分享给朋友:

相关文章

js实现计算器

js实现计算器

实现基础计算器功能 使用JavaScript创建一个基础计算器需要处理数字输入、运算符逻辑和结果显示。以下是一个简单的实现示例: let currentInput = '0'; let previo…

js实现换肤

js实现换肤

使用CSS变量实现换肤 通过CSS变量可以轻松实现主题切换功能。CSS变量在根元素中定义,通过JavaScript动态修改这些变量值。 :root { --primary-color: #349…

js实现变形

js实现变形

使用 CSS 和 JavaScript 实现元素变形 在 JavaScript 中实现变形效果通常结合 CSS 的 transform 属性,通过动态修改该属性实现元素的旋转、缩放、倾斜或平移。 基…

js实现dh

js实现dh

JavaScript 实现 DH(Diffie-Hellman)密钥交换 Diffie-Hellman(DH)密钥交换是一种安全协议,允许双方在不安全的通信信道上建立一个共享密钥。以下是如何在 Jav…

js实现自举

js实现自举

实现 JavaScript 自举的方法 JavaScript 自举(Bootstrap)通常指通过 JavaScript 动态加载自身或依赖的脚本,实现运行时环境的初始化或扩展。以下是几种常见实现方式…

js实现授权

js实现授权

授权流程设计 授权流程通常涉及前端与后端的交互,常见方案包括OAuth2.0、JWT等。以JWT为例的典型流程: 用户提交凭证(如用户名密码)到认证服务 服务端验证通过后生成包含用户信息的J…