ES6 URL对象

URL对象是现代浏览器提供的一个内置对象,用于表示和操作URL地址。这个对象提供了很多有用的方法和属性,可以帮助开发者解析、构建和操作URL。URL对象在ECMAScript 6(ES6)中被引入,并且在大多数现代浏览器中都有良好的支持。

创建 URL 对象

URL对象可以通过以下方式创建:

javascript 复制代码
const url = new URL(urlString, baseURI);
  • urlString 是一个字符串,表示要解析的URL。
  • baseURI 是一个可选参数,表示基础URI,用于解析相对URL。

URL 对象的属性

URL对象有很多有用的属性,以下是其中的一些主要属性:

  • href: 返回完整的URL字符串。
  • origin : 返回协议、主机名和端口号,例如http://example.com:8080
  • protocol : 返回URL的协议部分,包括后面的冒号,例如http:
  • username: 返回用户名。
  • password: 返回密码。
  • host : 返回主机名和端口号,例如example.com:8080
  • hostname : 返回主机名,例如example.com
  • port: 返回端口号,如果没有指定则返回空字符串。
  • pathname : 返回路径名称,包括前导的斜杠,例如/path/to/resource
  • search : 返回查询字符串,包括前导的问号?,例如?key=value
  • hash : 返回哈希部分,包括前导的井号#,例如#section1

URL 对象的方法

URL对象也提供了一些方法来操作URL:

  • toString() : 返回URL对象的完整字符串形式,等同于href属性。
  • searchParams : 返回一个URLSearchParams对象,用于操作查询字符串。

URLSearchParams 对象

URLSearchParams对象可以用来处理URL的查询字符串部分,提供了以下方法:

  • append(name, value): 向查询字符串中追加一个名称和值。
  • delete(name): 删除查询字符串中指定名称的所有值。
  • entries(): 返回一个迭代器,遍历查询字符串中的所有名称和值对。
  • forEach(callback, thisArg): 对查询字符串中的每个名称和值对调用一个函数。
  • get(name): 获取查询字符串中指定名称的第一个值。
  • getAll(name): 获取查询字符串中指定名称的所有值。
  • has(name): 检查查询字符串中是否存在指定名称。
  • set(name, value): 设置查询字符串中指定名称的值。

示例

下面是一个使用URL对象和URLSearchParams对象的示例:

javascript 复制代码
// 创建一个URL对象
const url = new URL('https://example.com/path/to/resource?query=123#section1');

// 访问URL的各种部分
console.log(url.href);           // 输出: https://example.com/path/to/resource?query=123#section1
console.log(url.origin);         // 输出: https://example.com
console.log(url.protocol);       // 输出: https:
console.log(url.host);           // 输出: example.com
console.log(url.hostname);       // 输出: example.com
console.log(url.port);           // 输出: '' (没有指定端口)
console.log(url.pathname);       // 输出: /path/to/resource
console.log(url.search);         // 输出: ?query=123
console.log(url.hash);           // 输出: #section1

// 访问和修改查询字符串
const searchParams = url.searchParams;
console.log(searchParams.get('query'));  // 输出: 123

// 修改查询字符串
searchParams.set('query', '456');
url.search = searchParams.toString();  // 更新URL对象的search属性

console.log(url.href);  // 输出: https://example.com/path/to/resource?query=456#section1

总结

URL对象提供了一种强大的方式来解析和操作URL,而URLSearchParams对象则专注于处理查询字符串。这些对象使得处理URL变得更加简单和直观,非常适合用于需要动态生成或解析URL的应用场景。如果您正在开发一个需要频繁处理URL的Web应用,掌握这些API是非常有用的。

相关推荐
艳阳天_.2 分钟前
web 分录科目实现辅助账
开发语言·前端·javascript
小白640219 分钟前
2025年终总结-迷途漫漫,终有一归
前端·程序人生
2501_9209317022 分钟前
React Native鸿蒙跨平台跨平台阅读应用实现方案,包含书籍展示、分类筛选、搜索排序等功能模块,通过清晰的状态管理实现数据筛选与排序
react native·react.js·ecmascript·harmonyos
烟花落o24 分钟前
贪吃蛇及相关知识点讲解
c语言·前端·游戏开发·贪吃蛇·编程学习
晚霞的不甘27 分钟前
Flutter for OpenHarmony专注与习惯的完美融合: 打造你的高效生活助手
前端·数据库·经验分享·flutter·前端框架·生活
kogorou0105-bit38 分钟前
前端设计模式:发布订阅与依赖倒置的解耦之道
前端·设计模式·面试·状态模式
止观止1 小时前
像三元表达式一样写类型?深入理解 TS 条件类型与 `infer` 推断
前端·typescript
xiaoqi9221 小时前
React Native鸿蒙跨平台实现图片画廊类页面是视觉展示型APP(如摄影类、图库类、设计类APP)的核心载体,其核心需求是实现图片的流畅渲染
javascript·react native·react.js·ecmascript·harmonyos
雪芽蓝域zzs1 小时前
uniapp 省市区三级联动
前端·javascript·uni-app
Highcharts.js1 小时前
Next.js 集成 Highcharts 官网文档说明(2025 新版)
开发语言·前端·javascript·react.js·开发文档·next.js·highcharts