URL 类 详解

这是 浏览器 + Node.js 通用的官方标准 API,专门用来拆解、拼接、修改加粗样式网址,学完你处理所有链接都不用愁了。

基础用法

  1. 最简写法(完整网址)
js 复制代码
// 浏览器 / Node.js 都能直接运行
const url = new URL("https://www.baidu.com/s?wd=nodejs&page=1");
  1. 常用写法(路径 + 基础域名,处理接口最常用)
js 复制代码
// base:基础域名
// 第二个参数:相对路径
const url = new URL("/s?wd=nodejs", "https://www.baidu.com");

这个写法在 Node.js 写服务器、前端处理接口 时超级常用!

属性列表

属性名 取值 含义(通俗)
u.href 完整网址 整个链接字符串
u.protocol https: 协议(http/https/ftp)
u.host www.baidu.com:8080 域名 + 端口
u.hostname www.baidu.com 纯域名(不带端口)
u.port 8080 端口号
u.pathname /search 路径(域名后面的地址)
u.search ?wd=nodejs&page=3 完整查询参数(带?)
u.hash #chapter1 锚点(# 后面的内容)
u.origin https://www.baidu.com:8080 协议 + 域名 + 端口

这些属性既能读,也能改!

js 复制代码
u.pathname = "/home"; // 修改路径
u.port = "3000";      // 修改端口
console.log(u.href);  // 自动生成新网址

searchParams(处理?后面的参数)

searchParams 是 URL 类自带的参数管理器,不用你拆分字符串,自带一堆方法。
常用方法

js 复制代码
const u = new URL("https://xxx.com?wd=nodejs&page=2");
  1. 获取参数
js 复制代码
u.searchParams.get("wd")   // "nodejs"
u.searchParams.get("page") // "2"
  1. 修改参数
js 复制代码
u.searchParams.set("page", 10); 
// 网址变成 ?wd=nodejs&page=10
  1. 添加参数
js 复制代码
u.searchParams.append("limit", 20);
// 网址变成 ?wd=nodejs&page=10&limit=20
  1. 判断参数是否存在
js 复制代码
u.searchParams.has("wd") // true
  1. 删除参数
js 复制代码
u.searchParams.delete("page");
  1. 遍历所有参数
js 复制代码
u.searchParams.forEach((value, key) => {
  console.log(key, value);
});

特点

1. 全平台通用

  • 浏览器原生支持
  • Node.js 原生支持
  • Electron 支持
  • 手机端网页支持

2. 自动处理编码

你不用管中文乱码,URL 类自动编码 / 解码:

js 复制代码
const url = new URL("https://xxx.com?name=张三");
console.log(url.search); // ?name=%E5%BC%A0%E4%B8%89 (自动编码)
console.log(url.searchParams.get("name")); // 张三 (自动解码)
相关推荐
爱吃红星柚43 分钟前
【学习】Elpis 抽离与发布 npm 包
前端·前端框架·node.js
梦帮科技2 小时前
Next.js 16 模块化单体实战:App Router、领域模块与 Route Handler 分层
css·数据结构·链表·正则表达式·node.js·json·html5
梦帮科技2 小时前
从 Guest 到 Platinum:Prompt 配额、API Key 与访问控制的安全闭环
javascript·git·架构·node.js·reactjs·html5·visual studio
秋秋小事3 小时前
node prisma+postgreSQL中的查询与过滤
node.js
右耳朵猫AI3 小时前
Node.js周刊2026W37 | 三处进程崩溃修复、fs 内置 glob、Workers 模块注册表、Vitest 5.0
javascript·后端·node.js
右耳朵猫AI3 小时前
Web前端周刊2026W37 | Shopify 转原生、React 编译 Rust 化、Vitest 5.0、Rslib 1.0
前端·javascript·react.js·typescript·node.js
秋秋小事3 小时前
node prisma中的crud
node.js
梦帮科技4 小时前
从提示词到可复现音乐工作流:RNOISE 2.0 的 Prompt Engineering 架构
人工智能·python·mysql·ci/cd·架构·node.js·numpy
小静AI工程实验室5 小时前
JS 逆向接口 ID 变了?Python 与 Node.js 复现 JSON 大整数精度丢失
javascript·python·node.js
FungLeo14 小时前
成为全栈·Node 后端篇·辅助接口:相邻、相关、目录、统计与搜索
node.js·成为全栈