常用点记录

305 阅读4分钟

1. URLURI

URI (Uniform Resource Identifier) 和 URL (Uniform Resource Locator) 都是用于表示资源在网络上的标识。它们之间的区别在于:

  1. 范围:URI 是一个更广泛的概念,包含了 URL 和 URN (Uniform Resource Name)。换句话说,所有的 URL 和 URN 都可以被认为是 URI,但并非所有的 URI 都是 URL 或 URN。

  2. 定位与命名

  • URL:URL 是一种特定的 URI,它表示资源的位置和访问该资源的方法。URL 通常包括协议、域名、资源路径以及查询参数等组成。例如:https://example.com/path?arg=value
  • URN:URN 是另一种特定的 URI 类型,它表示资源的唯一名称,而不是资源的位置。URN 用于在全球分布式网络环境中识别资源,而不受资源实际网络位置的影响。一个 URN 的例子是:urn:isbn:0451450523,这里是表示一个 ISBN 号。

2. encodeURIencodeURIComponent

encodeURIencodeURIComponent 都是 JavaScript 中对 URI 进行编码的方法

区别:

  • encodeURI 不会对已经是合法的 URI 组件(如英文字母、数字、:/?# 等)进行编码,只会对有可能影响 URI 完整性的字符进行编码。
  • encodeURIComponent 会对传入的字符串进行更加严格的编码,几乎对所有的非字母数字字符进行编码。这样可以确保编码后的组件可以被正确地嵌入到 URI 的任意位置而不会引起歧义。

解码:

  • decodeURI使用decodeURIComponent
  • encodeURI使用encodeURIComponent

示例:

image.png

3. 使用URLSearchParams进行URL的query参数提取

URLSearchParams 是一个 JavaScript API,用于获取和操作 URL 中查询字符串部分(即以?开始的部分)的信息。下面介绍一些 URLSearchParams 的常见用法。

1. 从 URL 中获取查询参数

我们可以通过 URLSearchParams 构造函数或 URLSearchParams 实例的 get() 方法来获取指定 key 的 value 值。例如:

// 从当前页面 URL 中获取指定 key 的 value 值
// window.location.search提取包含?后的字符串
const params = new URLSearchParams(window.location.search); 

console.log(params.get('key1')); // 输出 key1 对应的 value 值

image.png

2. 获取查询参数对象

我们可以通过使用 URLSearchParams 实例的 entries() 方法来获取所有的键值对数组,并使用 Object.fromEntries() 方法将其转换为对象。例如:

// 将当前页面 URL 的查询参数转换为对象
const params = new URLSearchParams(window.location.search);
const obj = Object.fromEntries(params.entries());
console.log(obj); // 输出包含查询参数所有键值对的对象

image.png

3. 将查询参数对象转成查询参数字符串

我们可以使用 URLSearchParams 构造函数或 URLSearchParams 实例的 toString() 方法将一个键值对对象转换为查询参数字符串。例如:

// 将包含键值对的对象转换为查询参数字符串
const obj = { key1: 'value1', key2: 'value2', key3: 'value3' };
const params = new URLSearchParams(obj);
console.log(params.toString()); // 输出包含键值对的查询参数字符串

image.png

4. 新增和修改查询参数

我们可以使用 URLSearchParams 实例的 set() 方法来新增或修改指定 key 的 value,使用 append() 方法来新增一组键值对。例如:

// 新增和修改查询参数
const params = new URLSearchParams(window.location.search);
params.set('key1', 'new_value'); // 修改指定 key 的 value
params.append('key4', 'value4'); // 新增一组键值对
console.log(params.toString()); // 输出新增和修改后的查询参数字符串

image.png

5. 删除查询参数

我们可以使用 URLSearchParams 实例的 delete() 方法删除指定 key 及其对应的 value。例如:

// 删除查询参数
const params = new URLSearchParams(window.location.search);
params.delete('key1'); // 删除指定 key 和其对应的 value
console.log(params.toString()); // 输出删除后的查询参数字符串

image.png

4. oss使用自定义域名访问图片或者pdf为什么是预览

浏览器打开图片链接是直接预览还是下载取决于图片链接的响应头Content-Disposition的属性

Content-Disposition 为 inline 在浏览器打开直接预览
Content-Disposition 为 attachment 在浏览器打开直接下载

cdn域名加速

image.png

未使用 image.png

5. git默认文件夹不区分大小写

// 项目
git config core.ignorecase false
// 全局
git config --global core.ignorecase false

6. 浏览器接口并发数

同一域名下的请求并发数是6,每个域名的都是6个 image.png

7. 浏览器支持mock

如何拦截mock

image.png

注意要开权限,否则不可以

image.png

image.png

image.png

清除 image.png

8. 防盗链