Skip to content

Commit 23e3bcb

Browse files
committed
docs(bom): fix wangdoc#154
1 parent c634d26 commit 23e3bcb

File tree

1 file changed

+16
-38
lines changed

1 file changed

+16
-38
lines changed

docs/bom/location.md

Lines changed: 16 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -171,27 +171,13 @@ decodeURIComponent('%E6%98%A5%E8%8A%82')
171171
// "春节"
172172
```
173173

174-
## URL 对象
174+
## URL 接口
175175

176-
`URL`对象是浏览器的原生对象,可以用来构造、解析和编码 URL。一般情况下,通过`window.URL`可以拿到这个对象。
177-
178-
`<a>`元素和`<area>`元素都部署了这个接口。这就是说,它们的 DOM 节点对象可以使用 URL 的实例属性和方法。
179-
180-
```javascript
181-
var a = document.createElement('a');
182-
a.href = 'http://example.com/?foo=1';
183-
184-
a.hostname // "example.com"
185-
a.search // "?foo=1"
186-
```
187-
188-
上面代码中,`a``<a>`元素的 DOM 节点对象。可以在这个对象上使用 URL 的实例属性,比如`hostname``search`
176+
`URL`接口是一个构造函数,浏览器原生提供,可以用来构造、解析和编码 URL。一般情况下,通过`window.URL`可以拿到这个构造函数。
189177

190178
### 构造函数
191179

192-
`URL`对象本身是一个构造函数,可以生成 URL 实例。
193-
194-
它接受一个表示 URL 的字符串作为参数。如果参数不是合法的 URL,会报错。
180+
`URL`作为构造函数,可以生成 URL 实例。它接受一个表示 URL 的字符串作为参数。如果参数不是合法的 URL,会报错。
195181

196182
```javascript
197183
var url = new URL('http://www.example.com/index.html');
@@ -283,7 +269,7 @@ url.href // "http://example.com/index2.html#part2"
283269

284270
**(1)URL.createObjectURL()**
285271

286-
`URL.createObjectURL`方法用来为上传/下载的文件、流媒体文件生成一个 URL 字符串。这个字符串代表了`File`对象或`Blob`对象的 URL。
272+
`URL.createObjectURL()`方法用来为上传/下载的文件、流媒体文件生成一个 URL 字符串。这个字符串代表了`File`对象或`Blob`对象的 URL。
287273

288274
```javascript
289275
// HTML 代码如下
@@ -306,19 +292,19 @@ function handleFiles(files) {
306292
}
307293
```
308294

309-
上面代码中,`URL.createObjectURL`方法用来为上传的文件生成一个 URL 字符串,作为`<img>`元素的图片来源。
295+
上面代码中,`URL.createObjectURL()`方法用来为上传的文件生成一个 URL 字符串,作为`<img>`元素的图片来源。
310296

311297
该方法生成的 URL 就像下面的样子。
312298

313299
```javascript
314300
blob:http://localhost/c745ef73-ece9-46da-8f66-ebes574789b1
315301
```
316302

317-
注意,每次使用`URL.createObjectURL`方法,都会在内存里面生成一个 URL 实例。如果不再需要该方法生成的 URL 字符串,为了节省内存,可以使用`URL.revokeObjectURL()`方法释放这个实例。
303+
注意,每次使用`URL.createObjectURL()`方法,都会在内存里面生成一个 URL 实例。如果不再需要该方法生成的 URL 字符串,为了节省内存,可以使用`URL.revokeObjectURL()`方法释放这个实例。
318304

319305
**(2)URL.revokeObjectURL()**
320306

321-
`URL.revokeObjectURL`方法用来释放`URL.createObjectURL`方法生成的 URL 实例。它的参数就是`URL.createObjectURL`方法返回的 URL 字符串。
307+
`URL.revokeObjectURL()`方法用来释放`URL.createObjectURL()`方法生成的 URL 实例。它的参数就是`URL.createObjectURL()`方法返回的 URL 字符串。
322308

323309
下面为上一段的示例加上`URL.revokeObjectURL()`
324310

@@ -337,7 +323,7 @@ function handleFiles(files) {
337323
}
338324
```
339325

340-
上面代码中,一旦图片加载成功以后,为本地文件生成的 URL 字符串就没用了,于是可以在`img.onload`回调函数里面,通过`URL.revokeObjectURL`方法卸载这个 URL 实例。
326+
上面代码中,一旦图片加载成功以后,为本地文件生成的 URL 字符串就没用了,于是可以在`img.onload`回调函数里面,通过`URL.revokeObjectURL()`方法卸载这个 URL 实例。
341327

342328
## URLSearchParams 对象
343329

@@ -390,14 +376,6 @@ var foo = url.searchParams.get('foo') || 'somedefault';
390376

391377
上面代码中,URL 实例的`searchParams`属性就是一个`URLSearchParams`实例,所以可以使用`URLSearchParams`接口的`get`方法。
392378

393-
DOM 的`a`元素节点的`searchParams`属性,就是一个`URLSearchParams`实例。
394-
395-
```javascript
396-
var a = document.createElement('a');
397-
a.href = 'https://example.com?filter=api';
398-
a.searchParams.get('filter') // "api"
399-
```
400-
401379
`URLSearchParams`实例有遍历器接口,可以用`for...of`循环遍历(详见《ES6 标准入门》的《Iterator》一章)。
402380

403381
```javascript
@@ -434,15 +412,15 @@ window.location.href = location.pathname + '?' + params;
434412

435413
### URLSearchParams.append()
436414

437-
`append`方法用来追加一个查询参数。它接受两个参数,第一个为键名,第二个为键值,没有返回值。
415+
`append()`方法用来追加一个查询参数。它接受两个参数,第一个为键名,第二个为键值,没有返回值。
438416

439417
```javascript
440418
var params = new URLSearchParams({'foo': 1 , 'bar': 2});
441419
params.append('baz', 3);
442420
params.toString() // "foo=1&bar=2&baz=3"
443421
```
444422

445-
`append`方法不会识别是否键名已经存在。
423+
`append()`方法不会识别是否键名已经存在。
446424

447425
```javascript
448426
var params = new URLSearchParams({'foo': 1 , 'bar': 2});
@@ -454,7 +432,7 @@ params.toString() // "foo=1&bar=2&foo=3"
454432

455433
### URLSearchParams.delete()
456434

457-
`delete`方法用来删除指定的查询参数。它接受键名作为参数。
435+
`delete()`方法用来删除指定的查询参数。它接受键名作为参数。
458436

459437
```javascript
460438
var params = new URLSearchParams({'foo': 1 , 'bar': 2});
@@ -464,7 +442,7 @@ params.toString() // "foo=1"
464442

465443
### URLSearchParams.has()
466444

467-
`has`方法返回一个布尔值,表示查询字符串是否包含指定的键名。
445+
`has()`方法返回一个布尔值,表示查询字符串是否包含指定的键名。
468446

469447
```javascript
470448
var params = new URLSearchParams({'foo': 1 , 'bar': 2});
@@ -474,7 +452,7 @@ params.has('baz') // false
474452

475453
### URLSearchParams.set()
476454

477-
`set`方法用来设置查询字符串的键值。
455+
`set()`方法用来设置查询字符串的键值。
478456

479457
它接受两个参数,第一个是键名,第二个是键值。如果是已经存在的键,键值会被改写,否则会被追加。
480458

@@ -509,7 +487,7 @@ window.history.replaceState({}, '', location.pathname + `?` + params);
509487

510488
### URLSearchParams.get(),URLSearchParams.getAll()
511489

512-
`get`方法用来读取查询字符串里面的指定键。它接受键名作为参数。
490+
`get()`方法用来读取查询字符串里面的指定键。它接受键名作为参数。
513491

514492
```javascript
515493
var params = new URLSearchParams('?foo=1');
@@ -528,7 +506,7 @@ params.get('foo') // "3"
528506

529507
上面代码中,查询字符串有三个`foo`键,`get`方法返回最前面的键值`3`
530508

531-
`getAll`方法返回一个数组,成员是指定键的所有键值。它接受键名作为参数。
509+
`getAll()`方法返回一个数组,成员是指定键的所有键值。它接受键名作为参数。
532510

533511
```javascript
534512
var params = new URLSearchParams('?foo=1&foo=2');
@@ -539,7 +517,7 @@ params.getAll('foo') // ["1", "2"]
539517

540518
### URLSearchParams.sort()
541519

542-
`sort`方法对查询字符串里面的键进行排序,规则是按照 Unicode 码点从小到大排列。
520+
`sort()`方法对查询字符串里面的键进行排序,规则是按照 Unicode 码点从小到大排列。
543521

544522
该方法没有返回值,或者说返回值是`undefined`
545523

0 commit comments

Comments
 (0)