1. URL和URI
URI (Uniform Resource Identifier) 和 URL (Uniform Resource Locator) 都是用于表示资源在网络上的标识。它们之间的区别在于:
-
范围:URI 是一个更广泛的概念,包含了 URL 和 URN (Uniform Resource Name)。换句话说,所有的 URL 和 URN 都可以被认为是 URI,但并非所有的 URI 都是 URL 或 URN。
-
定位与命名:
- URL:URL 是一种特定的 URI,它表示资源的位置和访问该资源的方法。URL 通常包括协议、域名、资源路径以及查询参数等组成。例如:
https://example.com/path?arg=value - URN:URN 是另一种特定的 URI 类型,它表示资源的唯一名称,而不是资源的位置。URN 用于在全球分布式网络环境中识别资源,而不受资源实际网络位置的影响。一个 URN 的例子是:
urn:isbn:0451450523,这里是表示一个 ISBN 号。
2. encodeURI和encodeURIComponent
encodeURI 和 encodeURIComponent 都是 JavaScript 中对 URI 进行编码的方法
区别:
encodeURI不会对已经是合法的 URI 组件(如英文字母、数字、:、/、?、#等)进行编码,只会对有可能影响 URI 完整性的字符进行编码。encodeURIComponent会对传入的字符串进行更加严格的编码,几乎对所有的非字母数字字符进行编码。这样可以确保编码后的组件可以被正确地嵌入到 URI 的任意位置而不会引起歧义。
解码:
decodeURI使用decodeURIComponentencodeURI使用encodeURIComponent
示例:
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 值
2. 获取查询参数对象
我们可以通过使用 URLSearchParams 实例的 entries() 方法来获取所有的键值对数组,并使用 Object.fromEntries() 方法将其转换为对象。例如:
// 将当前页面 URL 的查询参数转换为对象
const params = new URLSearchParams(window.location.search);
const obj = Object.fromEntries(params.entries());
console.log(obj); // 输出包含查询参数所有键值对的对象
3. 将查询参数对象转成查询参数字符串
我们可以使用 URLSearchParams 构造函数或 URLSearchParams 实例的 toString() 方法将一个键值对对象转换为查询参数字符串。例如:
// 将包含键值对的对象转换为查询参数字符串
const obj = { key1: 'value1', key2: 'value2', key3: 'value3' };
const params = new URLSearchParams(obj);
console.log(params.toString()); // 输出包含键值对的查询参数字符串
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()); // 输出新增和修改后的查询参数字符串
5. 删除查询参数
我们可以使用 URLSearchParams 实例的 delete() 方法删除指定 key 及其对应的 value。例如:
// 删除查询参数
const params = new URLSearchParams(window.location.search);
params.delete('key1'); // 删除指定 key 和其对应的 value
console.log(params.toString()); // 输出删除后的查询参数字符串
4. oss使用自定义域名访问图片或者pdf为什么是预览
浏览器打开图片链接是直接预览还是下载取决于图片链接的响应头Content-Disposition的属性
Content-Disposition 为 inline 在浏览器打开直接预览
Content-Disposition 为 attachment 在浏览器打开直接下载
cdn域名加速
未使用
5. git默认文件夹不区分大小写
// 项目
git config core.ignorecase false
// 全局
git config --global core.ignorecase false
6. 浏览器接口并发数
同一域名下的请求并发数是6,每个域名的都是6个
7. 浏览器支持mock
如何拦截mock
注意要开权限,否则不可以
清除