当前位置:首页 > 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 jquery

js jquery

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画设计和 Ajax 交互。它兼容多种浏览器,提供易于使用的 API,使开发者能够…

js实现驼峰

js实现驼峰

实现驼峰命名的几种方法 使用正则表达式和字符串替换 通过正则表达式匹配字符串中的特定模式(如下划线或短横线),并将其后的字母转换为大写,同时移除分隔符。 function toCamelCase(s…

js实现求导

js实现求导

实现数值求导的方法 在JavaScript中实现求导通常采用数值方法,因为JavaScript不是符号计算语言。以下是常见的数值微分方法: 中心差分法 中心差分法提供较高精度的导数近似:…

js树实现

js树实现

树的基本概念 树是一种非线性的数据结构,由节点和边组成。每个节点包含一个值和指向子节点的引用。树的顶部节点称为根节点,没有子节点的节点称为叶节点。 树的实现方式 在JavaScript中,树可以通过…

js实现自举

js实现自举

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

js实现vue路由

js实现vue路由

Vue 路由的基本实现 在 Vue.js 中实现路由功能通常使用 Vue Router 库。Vue Router 是 Vue.js 官方的路由管理器,用于构建单页面应用(SPA)。 安装 Vue R…